我使用array_diff来比较2个通过explode转换成数组的字符串,它可以比较2个相同长度的数组,我如何完成比较不同长度的数组?
实施例
Array1:quisck browsn fosx
Array2:快速棕色狐狸
作品!
Array1:quisck browsn
Array2:快速棕色狐狸
不起作用!!(没有提到狐狸)
<?php
$str1 = "The quisck browsn";
$str2 = "The quick brown fox";
$tempArr;
$var2;
$ctr=0;
echo "Array1:<br> $str1 <br><br>Array2:<br> $str2";
$strarr = (explode(" ",$str1));
echo("<br>");
$strarr2 = (explode(" ",$str2));
echo("<br>");
$result = array_diff($strarr,$strarr2);
//print_r($result);
if (count($result) > 0){
echo "<br>Differences: | " ;
foreach ($result AS $result){
echo $result." | ";
}
}
答案 0 :(得分:1)
试试这个
$str1 = "The quisck browsn";
$str2 = "The quick brown fox";
$tempArr;
$var2;
$ctr=0;
$strarr = (explode(" ",$str1));
echo("<br>");
$strarr2 = (explode(" ",$str2));
echo("<br>");
if(sizeof($strarr) > sizeof($strarr2)){
$result = array_diff($strarr,$strarr2);
}else{
$result = array_diff($strarr2,$strarr);
}
以上将返回数组大小之差大于lower.i.e。元素存在于第一个数组中但不存在于第二个数组中。
但是如果你想要它们中的两个完全不同,即第一个数组中的元素在第二个中不存在,反之亦然,你可以做一些事情
$fullDiff = array_merge(array_diff($strarr, $strarr2), array_diff($strarr2, $strarr));
答案 1 :(得分:0)
$str1 = "The quisck browsn";
$str2 = "The quick brown fox";
$tempArr;
$var2;
$ctr=0;
echo "Array1:<br> {$str1} <br><br>Array2:<br> {$str2}";
$strarr = (explode(" ",$str2));
echo("<br>");
$strarr2 = (explode(" ",$str1));
echo("<br>");
$result = array_diff($strarr,$strarr2);
//print_r($result);
if (count($result) > 0){
echo "<br>Differences: | " ;
foreach ($result AS $result){
echo $result." | ";
}
}
使用它,因为它返回一个数组,其中包含$ str2中任何其他任何数组中都不存在的条目。