php 比较多维数组是否相等

标签 php

数组1

 Array
    (
        [0] => Array
            (
                [prid] => 110
                [size_id] => 24
            )

        [1] => Array
            (
                [prid] => 117
                [size_id] => 24
            )

        [2] => Array
            (
                [prid] => 174
                [size_id] => 24
            )

    )

数组2

Array
(
    [0] => Array
        (
            [prid] => 174
            [size_id] => 24
        )

    [1] => Array
        (
            [prid] => 174
            [size_id] => 25
        )

    [2] => Array
        (
            [prid] => 163
            [size_id] => 24
        )


)

我有 2 个多维数组。我想比较两个数组,并且结果数组两者都相等。 (即)答案是

[prid] => 174
[size_id] => 24

注意:-我正在使用array_intersect_assoc(),但不起作用

我们如何检索这个???

请说出这个问题的答案

最佳答案

您可以使用foreach()array_column()来比较第二个数组值与第一个数组

$final_array = [];

foreach($array2 as $arr){

 if(in_array($arr['prid'],array_column($array1,'prid')) && in_array($arr['size_id'],array_column($array1,'size_id'))){
   $final_array[$arr['prid']] = $arr;
  }
}
$final_array = array_values($final_array);

print_r($final_array);

输出:- https://eval.in/979112

使用 array_intersect()array_column() 的另一个更简单的解决方案

$final_array = [];
$common_array = array_intersect (array_column($array1,'prid'),array_column($array2,'prid'));

foreach($common_array as $key=>$val){
  $final_array[] = $array1[$key];
}

print_r($final_array);

输出:- https://eval.in/979135

关于php 比较多维数组是否相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49506906/

相关文章:

php - 如何从表中选择一行,该行包含一个正整数字段,但0用于表示 "any"

php - 第一个表单提交插入行随后提交更新同一行

php - 如何使用 Auth 模块从 Kohana 3 检索所有用户和所有角色?

php - $GLOBALS 超全局在传递给函数时被修改

php - 使用 docker 的多个 nginx/php 应用程序的体系结构

php - linux通过lp打印,如何打印多份?

php - javascript 无法在 Google Chrome 上运行

php - 使用 PHP 将单个图像文件上传到 FTP

php - 我可以在php的if语句中运行while语句吗?

php - mysql中如何过滤有两次时间的记录?