繁体   English   中英

如何比较两个不同的多维数组?

[英]How to compare two different multidimensional array?

我有两个数组如下

数组 1

Array
(
    [0] => Array
        (
            [ps_id] => 5
            [product_id] => 2
            [supplier_id] => 25
            [cost] => 789.00
            [name] => Mahesh
        )
    [1] => Array
        (
            [ps_id] => 6
            [product_id] => 2
            [supplier_id] => 2
            [cost] => 12345.00
            [name] => mayank
        )
    [2] => Array
        (
            [ps_id] => 7
            [product_id] => 2
            [supplier_id] => 1
            [cost] => 123456.00
            [name] => abc
        )
    [3] => Array
        (
            [ps_id] => 10
            [product_id] => 2
            [supplier_id] => 8
            [cost] => 12000.00
            [name] => mayank1
        )
)

阵列 2

Array
(
    [0] => Array
        (
            [suppliers] => Mahesh
            [suppliers_cost] => 789.00
        )
    [1] => Array
        (
            [suppliers] => mayank
            [suppliers_cost] => 12345.00
        )
    [2] => Array
        (
            [suppliers] => mayank1
            [suppliers_cost] => 12000.00
        )
    [3] => Array
        (
            [suppliers] => testtetstet
            [suppliers_cost] => 123123
        )
)

我想通过他们的suppliersname键来比较上面的数组,

意味着如果这两个键具有相同的值,它将存储到一个新数组中,如果这些键不匹配,则它们将存储新的不同数组。

或者可能两个数组都有不同数量的键

我试过如下

foreach ($existsProductSupplier as $key => $value) {

     if (isset($supplier_data[$key])) {
     }else{
     $supplier_data[$key]['suppliers']='';
     $supplier_data[$key]['suppliers_cost']='';
     }
}

     foreach ($supplier_data as $key => $value) {       
       if(in_array($value['suppliers_cost'],$existsProductSupplier[$key])){
       //echo "string";
         // print_r($value);
      }else{
         echo "string";
         //print_r($value);
      }
    }

试试这个代码它会帮助你

<?php

$arr1=Array
(
    0 => Array
        (
            "ps_id" => 5,
            "product_id" => 2,
            "supplier_id" => 25,
            "cost" => 789.00,
            "name" => "Mahesh"
        ),
    1 => Array
        (
            "ps_id" => 6,
            "product_id" => 2,
            "supplier_id" => 2,
            "cost" => 12345.00,
            "name" => "mayank"
        ),
    2 => Array
        (
            "ps_id" => 7,
            "product_id" => 2,
            "supplier_id" => 1,
            "cost" => 123456.00,
            "name" => "abc"
        ),
    3 => Array
        (
            "ps_id" => 10,
            "product_id" => 2,
            "supplier_id" => 8,
            "cost" => 12000.00,
            "name" => "mayank1"
        ),
     4 => Array
        (
            "ps_id" => 10,
            "product_id" => 2,
            "supplier_id" => 8,
            "cost" => 12000.00,
            "name" => "mayank2"
        )
);


$arr2=Array
(
    0 => Array
        (
            "suppliers" => "Mahesh",
            "suppliers_cost" => 789.00
        ),
    1 => Array
        (
            "suppliers" => "mayank",
            "suppliers_cost" => 12345.00
        ),
    2 => Array
        (
            "suppliers" => "mayank1",
            "suppliers_cost" => 12000.00
        ),
    3 => Array
        (
            "suppliers" => "testtetstet",
            "suppliers_cost" => 123123
        )
);

foreach($arr1 as $key=>$value){
    if(isset($arr2[$key])){
        if($value['name']==$arr2[$key]['suppliers']){
            $arrnew1[]=$value['name'];
        }else{
            $arrnew2[]=$value['name'];
        }    
    }else{
        $arrnew2[]=$value['name'];
    }

}
print_r($arrnew1);
print_r($arrnew2);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM