PHP和2多维数组基于两个键值进行比较

Pet*_*ter 5 php arrays multidimensional-array

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

$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
    )
)
Run Code Online (Sandbox Code Playgroud)

第二个是这样的

$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
    )
)
Run Code Online (Sandbox Code Playgroud)

我的问题是:我想基于memberid和类型键搜索$ original数组的匹配,如果memberid和type不相同 - >我想从$ original数组中删除该数组.所以在这种情况下我想保持[0]数组和[2]数组,因为在$ new数组中我有相同的memberid和相同的类型,但是我想删除[1]数组,因为memberid是相同的,但是类型不同.所以我的最终$ original数组看起来像这样:

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

[1] => Array
    (
        [time] => 1364690342
        [memberid] => 96
        [type] => single
    )
)
Run Code Online (Sandbox Code Playgroud)

Adr*_*ian 2

好了,刚刚测试了一下,它按预期工作了。

// 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);
Run Code Online (Sandbox Code Playgroud)