PHP-向所有子数组添加默认值

时间:2019-04-05 13:53:16

标签: php multidimensional-array

我有一个包含一些子数组的数组。我需要为所有子数组添加一个默认值。我尝试了一些建议,但没有帮助。

array(1) { ["ClassOne"]=> 
                { 
                [0]=>{ ["rollno"]=> "C1" ["dateofbirth"]=> "1974-06-07"} 
                [1]=>{ ["rollno"]=> "C2" ["dateofbirth"]=> "1970-01-01"} 
                }

            }

需要更改为

array(1) { ["ClassOne"]=> 
                { 
                [0]=> { ["rollno"]=> "C1" ["dateofbirth"]=> "1974-06-07" ["defaultValue"]=> "someValue"} 
                [1]=> { ["rollno"]=> "C2" ["dateofbirth"]=> "1970-01-01" ["defaultValue"]=> "someValue"} 
                }

            }

2 个答案:

答案 0 :(得分:0)

使用foreach来获取将要附加“默认值”的索引,希望这个答案足够了,谢谢

/* your array as describred */

$array = array(
    array("ClassOne"=>
    array( "rollno"=> "C1","dateofbirth"=> "1974-06-07" ),
    array( "rollno"=> "C2","dateofbirth"=> "1970-01-01"),
    ),
    array("ClassTwo"=>
    array( "rollno"=> "C1","dateofbirth"=> "1974-06-07" ),
    array( "rollno"=> "C2","dateofbirth"=> "1970-01-01"),
    )

);

 foreach($array as $key=>$value)
  {
    foreach($array[$key] as $key1 => $value1)
    $array[$key][$key1]['defaultValue']='someValue';

  }

print_r($array);

答案 1 :(得分:0)

只需映射一个函数并添加新数组:

$a = ["defaultValue" => "someValue"];
$array = array_map(function($v) use($a) { return $v + $a; }, $array);

或者走路:

array_map($array, function(&$v, $k, $a) { $v = $v + $a; }, ["defaultValue" => "someValue"]);