如何在多维数组中插入新键和值?

PHP*_*ver 7 php arrays associative-array multidimensional-array

以下是我的多维数组的输出 $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
)
Run Code Online (Sandbox Code Playgroud)

最初[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
            )
       )
Run Code Online (Sandbox Code Playgroud)

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

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

                            $csmap_data ['flag'] = 1;


                    }
            }
Run Code Online (Sandbox Code Playgroud)

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

小智 27

<?
 foreach($csmap_data as $key => $csm)
 {
  $csmap_data[$key]['flag'] = 1;
 }
Run Code Online (Sandbox Code Playgroud)

这应该够了吧.


Man*_*han 13

您也可以使用php数组函数来完成它

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