在php中两个关联数组的键上的数组合并?

Ste*_*fan 3 php multidimensional-array array-merge

如何将这两个数组合并在一起?

Array
(
[0] => Array
    (
        [id] => 5
        [cnt] => 14
    )

[1] => Array
    (
        [id] => 8
        [cnt] => 2
    )

)

Array
(
    [0] => Array
        (
            [id] => 8
            [binding] => hardcover
        )

    [1] => Array
        (
            [id] => 5
            [binding] => softcover
        )
)
Run Code Online (Sandbox Code Playgroud)

预期的结果是:

Array
    (
        [0] => Array
            (
                [id] => 5
                [binding] => softcover
                [cnt] => 14
            )

        [1] => Array
            (
                [id] => 8
                [binding] => hardcover
                [cnt] => 2
            )

    )
Run Code Online (Sandbox Code Playgroud)

这两个数组的合并应该发生在[id]值而不是任何类型的数组上.我怎样才能以快速的方式使用php?

hsz*_*hsz 6

$output = array();

$arrayAB = array_merge($arrayA, $arrayB);
foreach ( $arrayAB as $value ) {
  $id = $value['id'];
  if ( !isset($output[$id]) ) {
    $output[$id] = array();
  }
  $output[$id] = array_merge($output[$id], $value);
}

var_dump($output);
Run Code Online (Sandbox Code Playgroud)

(可选)如果要重置输出键,只需执行以下操作:

$output = array_values($output);
Run Code Online (Sandbox Code Playgroud)