2017-05-14 2 views
-2

ich habe zwei Arrays und will einePHP Push-Wert Array von einem in einer anderen

//first 

     [0] => Array (
     [drink] => A 
     [litres] => 100.05 
     ) 
    [1] => Array (
     [drink] => B 
     [litres] => 3943 
     ) 
    [2] => Array (
     [drink] => C 
     [litres] => 1.46 
     ) 


    //second  

     [0] => 22 
     [1] => 12 
     [2] => 16 

Das Ergebnis sollte bekommen:

[0] => Array (
    [drink] => A 
    [litres] => 100.05 
    [price] => 22 
    ) 
[1] => Array (
    [drink] => B 
    [litres] => 3943 
    [price] => 12 
    ) 
[2] => Array (
    [drink] => C 
    [litres] => 1.46 
    [price] => 16 
    ) 

i mit Schlingen versucht, fusioniert usw. alles, was ich finden soll auf dieser Seite. Aber ich verstehe es nicht.

foreach ($arr as $array2) { 
    $array1[] = array('price' => $array2); 
} 

print_r($array1); 

i dont get es

Vielen Dank im Voraus

+0

Eine Schleife sollte gut funktionieren. Zeigen Sie uns Ihren aktuellen Code. – Rizier123

+2

Willkommen bei Stack Overflow! SO ist kein kostenloser Codierdienst. Sie müssen versuchen, das Problem selbst zu lösen. Wenn es nicht funktioniert, poste, was du versucht hast, und wir helfen dir, es zu beheben. – Barmar

+0

'code foreach ($ arr als $ array2) { \t $ array1 [] = array ('price' => $ array2); } print_r ($ array1); 'Ja, ich habe versucht, aber ich verstehe es nicht – pidecom

Antwort

0
$result = array_map(function($i, $j) { return array_merge($i, array('price'=>$j)); }, 
        $arr1, $arr2); 

demo on eval.in

0

Short-Lösung mit array_map und array_merge Funktionen:

$result = array_map(function($a, $b){ 
    return array_merge($a, ['price'=>$b]); 
}, $arr1, $arr2); 

print_r($result); 

Der Ausgang:

Array 
(
    [0] => Array 
     (
      [drink] => A 
      [litres] => 100.05 
      [price] => 22 
     ) 

    [1] => Array 
     (
      [drink] => B 
      [litres] => 3943 
      [price] => 12 
     ) 

    [2] => Array 
     (
      [drink] => C 
      [litres] => 1.46 
      [price] => 16 
     ) 
) 
0

Die anderen Antworten sind richtig Methoden, ich will nur zeigen, wie es mit einer foreach() Schleife durchgeführt werden kann:

Code:

$a=[ 
    ["drink"=>"A","litres"=>100.05], 
    ["drink"=>"B","litres"=>3943], 
    ["drink"=>"C","litres"=>1.46] 
    ]; 
$b=[22,12,16]; 

foreach($a as $i=>$subarray){ 
    $a[$i]["price"]=$b[$i]; 
} 
var_export($a); 

Diese Methode nicht ist Ein Einzeiler wird aber etwas schneller laufen, weil es weniger Funktionsaufrufe hat und auch von den meisten Leuten leichter gelesen werden kann. (Obwohl ich zugeben werde - ich lehne mich an Einzeiler) Beachten Sie, dass meine Methode keine neue Ergebnisvariable deklariert, sondern nur das erste Array erweitert.

Output (wie gewünscht):

array (
    0 => 
    array (
    'drink' => 'A', 
    'litres' => 100.05, 
    'price' => 22, 
), 
    1 => 
    array (
    'drink' => 'B', 
    'litres' => 3943, 
    'price' => 12, 
), 
    2 => 
    array (
    'drink' => 'C', 
    'litres' => 1.46, 
    'price' => 16, 
), 
) 
Verwandte Themen