PHP和2个多维数组基于两个键值进行比较 [英] PHP and 2 multidimensional array compare based on two key values

查看:41
本文介绍了PHP和2个多维数组基于两个键值进行比较的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两个这样的多维数组:

I have two multidimensional arrays like this:

$original = Array (
[0] => Array
    (
        [time] => 1364690340
        [memberid] => 90
        [type] => single
    )

[1] => Array
    (
        [time] => 1364690341
        [memberid] => 92
        [type] => fixed
    )

[2] => Array
    (
        [time] => 1364690342
        [memberid] => 96
        [type] => single
    )
)

和第二个这样的

$new = Array (
[0] => Array
    (
        [time] => 1364825750
        [memberid] => 90
        [type] => single
    )

[1] => Array
    (
        [time] => 1364825751
        [memberid] => 92
        [type] => single
    )

[2] => Array
    (
        [time] => 1364825752
        [memberid] => 96
        [type] => single
    )

[3] => Array
    (
        [time] => 1364825753
        [memberid] => 111
        [type] => single
    )
)

我的问题是:我想在$ original数组中搜索基于memberid和类型键以及if memberid的匹配项并键入ARE-不一样->我要从$ original数组中删除该数组。因此,在这种情况下,我想保持$ new数组中的[0] Array和[2] Array与我原来的成员ID和类型相同,但是我想删除[1] Array,因为memberid相同,但是类型不同。因此,我最终的$ original数组将如下所示:

My problem is: I want to search $original array for matches based on memberid and type keys and if memberid and type ARE NOT the same -> I want to remove that array from $original array. So in this case I want to keep [0] Array and [2] Array as in $new array I have same memberid and same type as in original, but I would want to remove [1] Array as memberid is the same, but type is different. So my final $original array will look like this:

$original = Array (
[0] => Array
    (
        [time] => 1364690340
        [memberid] => 90
        [type] => single
    )

[1] => Array
    (
        [time] => 1364690342
        [memberid] => 96
        [type] => single
    )
)


推荐答案

// Presuming your two arrays are still called $new & $original
$original = array(); // your data
$new = array(); // your data

$newArray = array();
foreach($original AS $key => $val){
    $newArray[$val['memberid'] . '-' . $val['type']] = $val;
}

$original = array();
foreach($new AS $key => $val){
    if(isset($newArray[$val['memberid'] . '-' . $val['type']])){
        $original[] = $newArray[$val['memberid'] . '-' . $val['type']];
    }
}

print_r($original);

这篇关于PHP和2个多维数组基于两个键值进行比较的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆