【问题标题】:How to insert a new key and value in multidimensional array?如何在多维数组中插入新的键和值?
【发布时间】:2013-04-11 20:10:25
【问题描述】:

以下是我的多维数组$csmap_data的输出

Array
(
    [0] => Array
        (
            [cs_map_id] => 84
            [cs_subject_id] => 1
        )

    [1] => Array
        (
            [cs_map_id] => 85
            [cs_subject_id] => 5
        )

    [flag] => 1
)

最初数组中没有[flag] => 1键值,我将其添加到数组$csmap_data中。 但是我想在上面两个数组元素中添加[flag] => 1,而不是作为单独的数组元素。简而言之,我想要以下输出:

Array
    (
        [0] => Array
            (
                [cs_map_id] => 84
                [cs_subject_id] => 1
                [flag] => 1
            )

        [1] => Array
            (
                [cs_map_id] => 85
                [cs_subject_id] => 5
                [flag] => 1
            )
       )

我试图实现的代码如下,但无法获得所需的输出:

if (!empty($csmap_data)) {  
                    foreach($csmap_data as $csm) {
                        $chapter_csmap_details = $objClassSubjects->IsClassSubjectHasChapters($csm['cs_map_id']);

                            $csmap_data ['flag'] = 1;


                    }
            }

任何人都可以帮助我获得我所描述的所需输出吗?提前致谢。

【问题讨论】:

    标签: php arrays multidimensional-array associative-array


    【解决方案1】:

    你也可以使用php数组函数来做

    $csmap_data = array_map(function($arr){
        return $arr + ['flag' => 1];
    }, $csmap_data);
    

    更新: 在array_map函数的回调函数中使用多个变量我们可以通过use来实现

    $flagValue = 1;
    $csmap_data = array_map(function($arr) use ($flagValue){
        return $arr + ['flag' => $flagValue];
    }, $csmap_data);
    

    【讨论】:

    • 这是最好的轻量级 process.tnkx 好友
    • 如何将变量传递给arraymap,假设我必须传递1的变量,有没有办法做到这一点
    • 我们可以使用“use”来访问其他变量,也可以使用全局变量,也可以使用“use”更新答案
    【解决方案2】:
    <?
     foreach($csmap_data as $key => $csm)
     {
      $csmap_data[$key]['flag'] = 1;
     }
    

    这应该可以解决问题。

    【讨论】:

    • 嘿,你的把戏对我有用。非常感谢您的帮助。
    • 谁能告诉我如何在没有循环的情况下做到这一点?
    猜你喜欢
    • 2016-10-13
    • 2016-08-31
    • 2015-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多