dozabt4329 2018-03-22 18:15
浏览 60
已采纳

CodeIgniter模板解析器将多维数组转换为单个

I have a multidimensional array for $this->data

Array
(
    [icon] => http://localhost/uploads/icon.png
    [logo] => http://localhost/uploads/logo.svg
    [seo] => Array
        (
            [canonical] => http://localhost/profile/register/
            [title] => Register
        )
)

How do I change the above to

Array
(
    [icon] => http://localhost/uploads/icon.png
    [logo] => http://localhost/uploads/logo.svg
    [canonical] => http://localhost/profile/register/
    [title] => Register
)

And what happens if I have another [icon] (a duplicate) under the [seo] will the first [icon] gets replace or ignore or how when I change it like above? The reason I need to convert it into single array because when I send the data for parsing, I can't get the {canonical} and {title} to work.

$this->data['seo'] from Profile_Controller.php will replace $this->data from MY_Controller.php so right now, I'm doing a workaround like putting those seo data into another array and use array_merge but I think there's another better way around it...

  • 写回答

1条回答 默认 最新

  • doupu3635 2018-03-22 21:58
    关注

    Using a foreach it's pretty easy. Just assign the array keys of seo to the main array and then unset the seo array from the main array:

       <?php
        $arr = [
            'icon' => 'http://localhost/uploads/icon.png',
            'logo' => 'http://localhost/uploads/logo.svg',
            'seo' => [
                    'canonical' => 'http://localhost/profile/register/',
                    'title' => 'Register'
                ]
        ];
    
            echo '<pre>';
    
            print_r($arr);
    
            foreach ($arr['seo'] as $k => $v) {
                $arr[$k] = $v;
            }
            unset($arr['seo']);
    
            print_r($arr);
    

    If there is a duplicate icon in the seo array it will overwrite the one in the master array.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥30 自适应 LMS 算法实现 FIR 最佳维纳滤波器matlab方案
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥15 Python3.5 相关代码写作
  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像