0

このサイトを見て、配列をマージする例をいくつか見つけましたが、正直なところ、どれが自分に合っているかわかりません。

これらの配列をマージするのに苦労しています。array_combine と array_merge を試しましたが、うまくいきません。

私が必要とするのは、次のような出力を持つ単一の配列です。

Array
(
    [0] => Array
        (
            [UnitNo] => 91
            [Name] => Receiving
            [ActivityNo] =>
            [Active] => 2
            [CallNo] =>
            [CallStatusNo] =>
            [Assigned] =>
            [UnitId] => 2
        )
    [1] => Array
        (
            [UnitNo] => 83
            [Name] => Shipping
            [ActivityNo] =>
            [Active] =>
            [CallNo] =>
            [CallStatusNo] =>
            [Assigned] =>
            [UnitId] => 1
        )
)

UnitIdこれらは、上記のような完全な配列を形成する に基づいてマージする必要がある 2 つの配列です。これを行う方法がわかりません。誰かが私に少し指示を与えることができれば、私は感謝します.

// Array #1
Array
(
    [0] => Array
        (
            [UnitId] => 2
            [UnitNo] => 91
            [Name] => Receiving
            [Active] => 4
        )

    [1] => Array
        (
            [UnitId] => 1
            [UnitNo] => 83
            [Name] => Shipping
            [Active] => 4
        )
)
// Array #2

Array
(
    [0] => Array
        (
            [UnitId] => 2
            [ActivityNo] => 1
            [CallNo] => 1
            [CallStatusNo] => 1
            [Assigned] => 1
        )

    [1] => Array
        (
            [UnitId] => 1
            [ActivityNo] => 11
            [CallNo] => 2
            [CallStatusNo] => 1
            [Assigned] => 1
        )

)
4

1 に答える 1

0

これは、php 関数を使用してそれを適切に呼び出すことができる場合ではありません。独自のカスタム ロジックを実行する必要があります。

これは機能しますが、両方が各インデックスに同じアイテムを持っている$array1場合に限ります。$array2

$array1;
$array2;
$mergedArray;

for ($i=0; $i++; $i < count($array1) - 1) {
    //first add all the values from array1
    $mergedArray[$i] = $array1[$i];

    foreach($array2[$i] as $array2Key=>$array2Value){
        //now check for missing key/values that are in array2 but not in array1
        if (array_key_exists($array2Key, $array1[$i]) == false) {
            // the key does not exist in array1, so add it to mergedArray
            $mergedArray[$i][$array2Key] = $array2Value;
        }
    }
}

配列が一意の値でインデックス付けされた連想配列であれば、より安全です。

于 2013-10-03T18:34:59.197 に答える