2017-06-19 9 views
0

Haben Sie ein mehrdimensionales ArrayArray Karte ein PHP mehrdimensionales Array

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

und ein Array Kartenfunktion

function myfunction() 
{ 

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

die

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

in Ergebnisse wie ordne ich das Array zu erhalten dieses Ergebnis stattdessen

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

Diese Frage hat keine Frage. – quinz

+0

Haben Sie die Dokumentation von ['array_map()'] (http://php.net/manual/en/function.array-map.php) gelesen? – axiac

Antwort

1

Sie müssen den Wert zu jedem gegebenen Array (innerhalb der Callback) zu verwenden, wie:

<?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); 

Demo: https://3v4l.org/XHfLc

1

Sie nicht $ template als Array behandeln, das ist, was Ihre Funktion sollte wie folgt aussehen:

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

Sie in irgendeiner Art und Weise unten genannten erreichen,

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); 

Hinzufügen zu jedem Index eines assoziativen Arrays.

Hier funktioniert code.