2017-05-14 62 views
-2

我有两个数组,并希望得到一个PHP推值阵列中的另一个

//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 

结果应该是:

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

我试图与循环,合并等都是我应该找到在这个网站上。但我没有得到它。

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

print_r($array1); 

我不明白

在此先感谢

使用 array_maparray_merge功能
+0

环路应该正常工作。向我们展示您的当前代码。 – Rizier123

+2

欢迎来到Stack Overflow! SO不是免费的编码服务。你必须尝试自己解决问题。如果无法正常工作,请发布您尝试的内容,我们会帮助您解决问题。 – Barmar

+0

'code foreach($ arr as $ array2){ \t $ array1 [] = array('price'=> $ array2); } print_r($ array1);'是的,我试过了,但我没有得到它 – pidecom

回答

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

demo on eval.in

0

简短的解决方案:

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

print_r($result); 

输出:

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

其他的答案是正确的方法,我只是想表明它如何与foreach()回路来完成:

代码:

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

这种方法不一行一行,但会稍微快一点,因为它的函数调用较少,大多数人阅读起来也会更容易。 (虽然我承认 - 我倾向于单行)注意,我的方法没有声明新的结果变量,它只是扩展了第一个数组。

输出(如需要的话):

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