我如何才能找到具有不同格式的数组的差异

时间:2019-07-10 05:32:44

标签: php arrays

我正在尝试两个数组中的两个查找差异。两个数组的格式都不同

第一个数组

Array
(
    [0] => Array
        (
            [value] => /m/b/mb01-blue-0.jpg
        )

    [1] => Array
        (
            [value] => /m/b/mb04-black-0.jpg
        )

    [2] => Array
        (
            [value] => /m/b/mb04-black-0.jpg
        )
}

第二个数组

Array
(
    [0] => /m/b/mb01-blue-0.jpg
    [1] => /m/b/mb04-green-0.jpg
    [2] => /m/b/mb04-blue-0.jpg
}

我希望两个数组都是相同的格式,以便在php中使用array_diff()函数

3 个答案:

答案 0 :(得分:2)

通过value获取第一个数组的array_column()列,然后使用array_diff()检查该结果与第二个数组之间的差异。

$diff = array_diff(array_column($first, 'value'), $second);

答案 1 :(得分:0)

您可以尝试以下方法:

$array_1 = array(
   "0"=> array("value" => "/m/b/mb01-blue-0.jpg"),
   "1"=> array("value" => "/m/b/mb04-black-0.jpg"),
   "2"=> array("value" => "/m/b/mb04-black-0.jpg"),
);

$result_1 = array_column($array_1,"value");
print_r($result_1);

要从数组中获取特定于列的值,请使用array_column() php -function

答案 2 :(得分:0)

这里是带有array_shift的单线纸,

$arr = array_map("array_shift", $arr);

array_shift-将元素移出数组的开头

Demo

输出:-

Array
(
    [0] => /m/b/mb01-blue-0.jpg
    [1] => /m/b/mb04-black-0.jpg
    [2] => /m/b/mb04-black-0.jpg
)