首頁 >每日程式設計 >PHP知識 >如何比較兩個PHP多維數組

如何比較兩個PHP多維數組

藏色散人
藏色散人原創
2019-01-16 15:28:5015288瀏覽


判斷兩個多維數組是否相等,或有哪些元素差異。我們可以透過PHP中array_udiff()函數和create_function()方法、strcmp ()等函數來實現比較。

如何比較兩個PHP多維數組

下面我們就結合具體的程式碼範例,介紹給大家比較兩個二維陣列的方法。

程式碼範例如下:

<?php

//多维数组比较
$color1 = array(array(&#39;Red&#39;,80),array(&#39;Green&#39;,70),array(&#39;white&#39;,60));
$color2 = array(array(&#39;Green&#39;,70),array(&#39;Black&#39;,95));

$color = array_udiff($color1,$color2,create_function(
&#39;$a,$b&#39;,&#39;return strcmp(implode("",$a),implode("",$b));&#39;)
);

echo "<pre class="brush:php;toolbar:false">";

print_r($color);

此段程式碼中,我們就可以得到$color1陣列相對於$color2陣列有哪些不同的陣列元素。

輸出比較結果如下:

如何比較兩個PHP多維數組

#函數介紹:

1、array_udiff : 用回呼函數比較資料來計算陣列的差集

array_udiff ( array $array1 , array $array2 [, array $... ], callable $value_compare_func ) : array

使用回呼函數比較數據,計算陣列的差異。和 array_diff() 不同的是,前者使用內建函數進行資料比較。

參數array1表示第一個陣列。 array2第二個陣列。 value_compare_func回呼對照函數。

在第一個參數小於,等於或大於第二個參數時,比較函數必須相應地傳回一個小於,等於或大於 0 的整數。

callback ( mixed $a, mixed $b ) : int

#回傳值,傳回 array1 裡沒有出現在其他參數裡的所有值。

2、create_function:建立一個匿名函數

create_function ( string $args , string $code ): string

根據傳遞的參數建立匿名函數,並為其傳回唯一名稱。

通常這些參數將作為單引號分隔的字串傳遞。使用單引號字串的原因是為了保護變數名稱不被解析,否則,如果使用雙引號,則需要轉義變數名稱,例如\ $ avar。

args表示函數參數。 code表示功能代碼。

傳回值是以字串或FALSE錯誤形式傳回唯一函數名稱。

3、strcmp :二進位安全字串比較

strcmp ( string $str1 , string $str2 ) : int

注意此比較區分大小寫。

參數str1表示第一個字串。 str2表示第二個字串。

傳回值是如果 str1 小於 str2 回傳 0;如果兩者相等,則回傳 0。

4、implode:將一個一維數組的值轉換成字串

#本篇文章就是關於比較兩個PHP多維數組的方法介紹,也很簡單易懂,希望對需要的朋友有幫助!


以上是如何比較兩個PHP多維數組的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

相關文章

看更多