-1

我有两个多维数组我只想取那些键值与第一个数组不同的数组

这是我的两个数组:

$array1 =  Array
(
  [0] => Array
    (
        [id] => 1
        [serial] => k-0001
        [u_rec_id] => 1
        [employer_office] => uouuououou
        [job_type] => ouuou
        [job_title] => u
        [job_appointment_date] => 2013-07-15
        [job_duration] => ouu

    )

  [1] => Array
    (
        [id] => 2
        [serial] => k-0001
        [u_rec_id] => 1
        [employer_office] => DDC
        [job_type] => Manger
        [job_title] => Manager
        [job_appointment_date] => 2013-07-17
        [job_duration] => one year
          )


 )

这是我的第二个数组

$array2 =  Array
(
  [0] => Array
    (
        [id] => 1
        [serial] => k-0001
        [u_rec_id] => 1
        [employer_office] => uouuououou
        [job_type] => ouuou
        [job_title] => u
        [job_appointment_date] => 2013-07-15
        [job_duration] => ouu

    )

  [1] => Array
    (
        [id] => 2
        [serial] => k-0001
        [u_rec_id] => 1
        [employer_office] => ouo
        [job_type] => uououo
        [job_title] => udds
        [job_appointment_date] => 2013-07-17
        [job_duration] => uo
          )


 );

我尝试了 array_diff 和 array_diff_assoc 它对我也不起作用我得到了这个错误

遇到 PHP 错误

严重性:通知

消息:数组到字符串的转换

文件名:history/home.php

行号:729

4

2 回答 2

0

foreacharray_unique并且可能array_udiff应该在这里帮助你。

PHP手册:

对于一个简单的数组:

$result = array_unique($array);

在您的情况下,PHP Manual 中有一个功能:

<?php 
function specified_array_unique($array, $value) 
{ 
    $count = 0; 

    foreach($array as $array_key => $array_value) 
    { 
        if ( ($count > 0) && ($array_value == $value) ) 
        { 
            unset($array[$array_key]); 
        } 

        if ($array_value == $value) $count++; 
    } 

    return array_filter($array); 
} 
?>

有一个帖子与您的要求相似; 堆栈溢出 - array_udiff

于 2013-07-24T09:49:40.993 回答
0

像这样的东西应该能让你到达那里,这取决于你到底想要什么:

$diff = array_udiff($array1, $array2, function (array $a, array $b) {
    return (int)array_diff($a, $b);
});

调整比较功能以比较您想要比较的内容。
http://php.net/array_udiff

于 2013-07-24T09:46:31.483 回答