判斷兩個(gè)多維數(shù)組是否相等,或有哪些元素區(qū)別。我們可以通過php中array_udiff()函數(shù)和create_function()方法、strcmp ()等函數(shù)來實(shí)現(xiàn)比較。
如何比較兩個(gè)PHP多維數(shù)組
下面我們就結(jié)合具體的代碼示例,給大家介紹比較兩個(gè)二維數(shù)組的方法。
代碼示例如下:
1 <?php
2
3 //多維數(shù)組比較
4 $color1 = array(array('Red',80),array('Green',70),array('white',60));
5 $color2 = array(array('Green',70),array('Black',95));
6
7 $color = array_udiff($color1,$color2,create_function(
8 '$a,$b','return strcmp(implode("",$a),implode("",$b));')
9 );
10
11 echo "<pre>";
12
13 print_r($color);
此段代碼中,我們就可以得出$color1數(shù)組相對(duì)于$color2數(shù)組有哪些不同的數(shù)組元素。
輸出比較結(jié)果如下:
如何比較兩個(gè)PHP多維數(shù)組
函數(shù)介紹:
1、array_udiff : 用回調(diào)函數(shù)比較數(shù)據(jù)來計(jì)算數(shù)組的差集
1 array_udiff ( array $array1 , array $array2 [, array $... ], callable $value_compare_func ) : array
使用回調(diào)函數(shù)比較數(shù)據(jù),計(jì)算數(shù)組的不同之處。和 array_diff() 不同的是,前者使用內(nèi)置函數(shù)進(jìn)行數(shù)據(jù)比較。
參數(shù)array1表示第一個(gè)數(shù)組。array2第二個(gè)數(shù)組。value_compare_func回調(diào)對(duì)照函數(shù)。
在第一個(gè)參數(shù)小于,等于或大于第二個(gè)參數(shù)時(shí),該比較函數(shù)必須相應(yīng)地返回一個(gè)小于,等于或大于 0 的整數(shù)。
callback ( mixed $a, mixed $b ) : int
返回值,返回 array1 里沒有出現(xiàn)在其他參數(shù)里的所有值。
2、create_function:創(chuàng)建一個(gè)匿名函數(shù)
1 create_function ( string $args , string $code ): string
根據(jù)傳遞的參數(shù)創(chuàng)建匿名函數(shù),并為其返回唯一名稱。
通常這些參數(shù)將作為單引號(hào)分隔的字符串傳遞。使用單引號(hào)字符串的原因是為了保護(hù)變量名稱不被解析,否則,如果使用雙引號(hào),則需要轉(zhuǎn)義變量名稱,例如 $ avar。
args表示函數(shù)參數(shù)。code表示功能代碼。
返回值是以字符串或FALSE錯(cuò)誤形式返回唯一函數(shù)名稱。
3、strcmp :二進(jìn)制安全字符串比較
1 strcmp ( string $str1 , string $str2 ) : int
注意該比較區(qū)分大小寫。
參數(shù)str1表示第一個(gè)字符串。str2表示第二個(gè)字符串。
返回值是如果 str1 小于 str2 返回 < 0; 如果 str1 大于 str2 返回 > 0;如果兩者相等,返回 0。
4、implode:將一個(gè)一維數(shù)組的值轉(zhuǎn)化為字符串
本篇文章就是關(guān)于比較兩個(gè)PHP多維數(shù)組的方法介紹,也很簡(jiǎn)單易懂,希望對(duì)需要的朋友有所幫助!
以上就是如何比較兩個(gè)PHP多維數(shù)組的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注天華信息教育其它相關(guān)文章!






