0

ここに配列#1があります

Array
(
    [0] => Array
        (
            [first] => LightSpeed
            [last] => Administrator
        )

    [1] => Array
        (
            [first] => Tyler
            [last] => Nichol
        )

ここに配列#2があります

Array
(
    [I-10] => Array
        (
            [user] => 2
            [total] => 46.64
        )

    [I-11] => Array
        (
            [user] => 2
            [total] => -46.64
        )

[total] => $value を最初の配列に追加したいので、次のようになります。

Array
(
    [0] => Array
        (
            [first] => LightSpeed
            [last] => Administrator
            [total] => 46.64
        )

    [1] => Array
        (
            [first] => Tyler
            [last] => Nichol
            [total] => -46.64
        )

それがarray_pushであることは確かですが、ループする方法がわかりません。助言がありますか?ありがとう!

4

3 に答える 3

0

あなたの配列は適切にフォーマットされていないので、回答でそれを行いました。質問を更新することをお勧めします

<?php
$arr1 = Array
(
     Array
        (
            'first' => 'LightSpeed',
            'last' => 'Administrator'
        ),

     Array
        (
            'first' => 'Tyler',
            'last' => 'Nichol'
        )
);

$arr2 = Array
(
    'I-10' => Array
        (
            'user' => 2,
            'total' => 46.64
        ),

    'I-11' => Array
        (
            'user' => 2,
            'total' => -46.64
        )
);


$n = count($arr1);
$i = 0;
foreach($arr2 as $arr)
{
   $arr1[$i]['total'] = $arr['total'];
   $i++;
}

var_dump($arr1);
?>

の結果var_dump

array
  0 => 
    array
      'first' => string 'LightSpeed' (length=10)
      'last' => string 'Administrator' (length=13)
      'total' => float 46.64
  1 => 
    array
      'first' => string 'Tyler' (length=5)
      'last' => string 'Nichol' (length=6)
      'total' => float -46.64
于 2012-08-25T04:16:15.140 に答える
0

少しローテクですが、配列をループして合計アイテムを挿入します。配列内の項目の位置で 2 番目の配列に一致していると仮定します。

$vals = array_values($arr2);
foreach($arr1 as $i=>$item) {
    $arr1[$i]['total'] = $vals[$i]['total'];
}
于 2012-08-25T04:03:30.443 に答える
0

あなたはいつもループする必要はありません..array_mergeトリックを行うことができます

function superMerge($a, $b) {
    $a['total'] = $b['total'];
    return $a;
}

$array1 = array(0 => Array("first" => "LightSpeed","last" => "Administrator"),1 => Array("first" => "Tyler","last" => "Nichol"));
$array2 = array("I-10" => Array("user" => 2,"total" => 46.64),"I-11" => Array("user" => 2,"total" => - 46.64));

var_dump(array_map("superMerge", $array1, $array2));

出力

array
  0 => 
    array
      'first' => string 'LightSpeed' (length=10)
      'last' => string 'Administrator' (length=13)
      'total' => float 46.64
  1 => 
    array
      'first' => string 'Tyler' (length=5)
      'last' => string 'Nichol' (length=6)
      'total' => float -46.64
于 2012-08-25T04:04:01.400 に答える