2017-06-19 81 views
0

有一个多维数组阵图一个PHP多维数组

$template=Array (
[0] => Array ([id] => 352 [name] => a) 
[1] => Array ([id] => 438 [name] => b) 
[2] => Array ([id] => 351 [name] => c) 
       ) 

和阵图功能

function myfunction() 
{ 

return "[selected]=>null"; 
} 
print_r(array_map("myfunction",$template)); 

导致

Array ( 
    [0] => [selected]=>null 
    [1] => [selected]=>null 
    [2] => [selected]=>null 
    ) 

我怎么阵图获得这个结果代替

Array ( 
     [0] => Array ([id] => 352 [name] => a [selected] => null) 
     [1] => Array ([id] => 438 [name] => b [selected] => null) 
     [2] => Array ([id] => 351 [name] => c [selected] => null) 
    ) 
+0

这个问题没有任何问题。 – quinz

+0

你读过['array_map()'](http://php.net/manual/en/function.array-map.php)的文档吗? – axiac

回答

1

您需要将值添加到每个给定的数组(回调内),如:

<?php 

$in = [ 
    [ 'id' => 352, 'name' => 'a' ], 
    [ 'id' => 438, 'name' => 'b' ], 
    [ 'id' => 351, 'name' => 'c' ], 
]; 

$out = array_map(function (array $arr) { 
    // work on each array in the list of arrays 
    $arr['selected'] = null; 

    // return the extended array 
    return $arr; 
}, $in); 

print_r($out); 

演示:https://3v4l.org/XHfLc

1

你不处理$模板作为一个数组,这就是你的函数应该是这样的:

function myfunction($template) 
{ 
    $template['selected'] = 'null'; 
    return $template; 
} 
0

您可以在某种下面提到的方式实现,

function array_push_assoc(&$array, $key, $value){ 
    foreach($array as $k => $v) 
     $array[$k][$key] = $value; 
return $array; 
} 
$result = array_push_assoc($template, 'selected','null'); 
print_r($result); 

添加到关联数组的每个索引。

这里是工作code