求這個兩個數組的差集?

來源:互聯網
上載者:User
Array ( [0] => Array ( [id] => 11 [parametername] => 參數名稱11 ) )

Array ( [0] => Array ( [id] => 6 [parametername] => 參數名稱6 ) [1] => Array ( [id] => 10 [parametername] => 參數名稱10 ) [2] => Array ( [id] => 11 [parametername] => 參數名稱11 ) [3] => Array ( [id] => 15 [parametername] => 參數編輯 ) [4] => Array ( [id] => 16 [parametername] => 參數20 ) )

回複內容:

Array ( [0] => Array ( [id] => 11 [parametername] => 參數名稱11 ) )

Array ( [0] => Array ( [id] => 6 [parametername] => 參數名稱6 ) [1] => Array ( [id] => 10 [parametername] => 參數名稱10 ) [2] => Array ( [id] => 11 [parametername] => 參數名稱11 ) [3] => Array ( [id] => 15 [parametername] => 參數編輯 ) [4] => Array ( [id] => 16 [parametername] => 參數20 ) )

$array1 = array(    array('n3'=>'v3', 'n4'=>'v4'),    array('n1'=>'v1', 'n2'=>'v2'));$array2 = array(    array('n1'=>'v1', 'n2'=>'v2'));$result = array_udiff(    $array1,    $array2,    function ($v1, $v2) {        return strcmp(serialize($v1), serialize($v2));    })// 或者$result = array_filter($array1, function($v) use ($array2) {    return in_array($v, $array2);});

你可以試試。

回調是你的好朋友。

資料:

 11, "parametername" => "PARAMETER NAME XI" ) ,     array( "id" => 30, "parametername" => "PARAMETER NAME XXX" ) , );$array2 = array(    array( "id" => 6, "parametername" => "Parameter Name VI" ),     array( "id" => 10, "parametername" => "Parameter Name X" ) ,     array( "id" => 11, "parametername" => "Parameter Name XI" ) ,     array( "id" => 15, "parametername" => "Parameter Name XV" ) ,     array( "id" => 16, "parametername" => "Parameter Name XVI" ) , );

比較代碼如下:

array_udiff($array2, $array1, function($a, $b) {    return ($a['id'] - $b['id']);});/*array(    array( "id" => 6, "parametername" => "Parameter Name VI" ),     array( "id" => 10, "parametername" => "Parameter Name X" ) ,     array( "id" => 15, "parametername" => "Parameter Name XV" ) ,     array( "id" => 16, "parametername" => "Parameter Name XVI" ) , )*/array_udiff($array1, $array2, function($a, $b) {    return ($a['id'] - $b['id']);})/*array(    array( "id" => 30, "parametername" => "PARAMETER NAME XXX" ), )*/

另外我希望沒理解錯題意。以上代碼均認為只要id相同就屬於同一個資料。如果有必要自行更改回調的邏輯。

回調很好。。學了一招。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.