【问题标题】:PHP Difference of two assoc Arrays两个关联数组的PHP差异
【发布时间】:2014-09-10 13:25:22
【问题描述】:

我有两个 assoc 数组:

第一个:

Array
(
    [0] => Array
        (
            [24] => s
            [23] => czarny
        )

    [1] => Array
        (
            [24] => m
            [23] => czarny
        )

    [2] => Array
        (
            [24] => l
            [23] => czarny
        )

)

第二个:

Array
(
    [0] => Array
        (
            [24] => l
            [23] => czarny
        )

    [1] => Array
        (
            [23] => czarny
            [24] => m
        )

)

在输出中我想得到:

Array
(
      [24] => s
      [23] => czarny
)

因为有两个数组:

[0] => Array
        (
            [23] => czarny
            [24] => m
        )

[0] => Array
        (
            [24] => m
            [23] => czarny
        )

对我来说是一样的。 有谁知道如何处理?我试图在第四个嵌套的 foreach 中执行此操作,但我感到困惑..

【问题讨论】:

标签: php arrays


【解决方案1】:

这有点疯狂,但它会起作用。

$array1[0][23] = 'czarny';
$array1[0][24] = 'm';

$array1[1][23] = 'czarny';
$array1[1][24] = 's';

$array1[2][23] = 'czarny';
$array1[2][24] = 'l';

$array2[0][23] = 'czarny';
$array2[0][24] = 'm';

$array2[1][23] = 'czarny';
$array2[1][24] = 'l';

end($array1);

// Merge two arrays
$array3 =   array_merge($array1,$array2);
// Loop through the one array and create a second assoc array based on key 24
foreach($array1 as $mainKey => $object) {
        foreach($object as $key => $value) {
                $newArray[$object[24]][$key] = $value;
            }
    }
// Loop through new array to create yet another new one but reset keys back to numeric
$i=0;
foreach($newArray as $key => $value) {
        $final[$i]  =   $value;

        $i++;
    }

print_r($final);

【讨论】:

    猜你喜欢
    • 2021-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-03
    • 2017-09-01
    • 1970-01-01
    相关资源
    最近更新 更多