尝试一些自定义数组差异,例如 PHP 中的方法
trying some customize array difference like approach in PHP
$a = ["a","b","c","a","b"];
$b = ["a","c"];
array_diff($a,$b);
//output will be [b,b]
但这不是真正的区别它也可以是
//output [b,a,b] <- this is what I am trying to achieve
我尝试了 foreach 循环和 for 循环,但未能得到它...
我试过的每个例子
$a = ["a","b","c","a","b"];
$b = ["a","c"];
echo array_diff_custom($a,$b),"<br>";
function array_diff_custom($a,$b){
$result =0;
foreach($a as $key=>$val){
foreach($b as $key2=>$val2){
if($val == $val2){
unset($a[$key]);
}
}
}
$result = count($a);
return $result;
}
echo array_diff_custom($b,$a);
for循环例子,我试过了
$a = ["a","b","c","a","b"];
$b = ["a","c"];
echo array_diff_custom($a,$b),"<br>";
function array_diff_custom($a,$b){
$result =0;
for($i=0;$i<count($a);$i++){
for($j=0;$j<count($b);$j++){
//echo $a[$i]."-".$b[$j]."<br>";
if($a[$i] == $b[$j]){
unset($a[$i]);
}
}
}
$result = count($a);
return $result;
}
echo array_diff_custom($b,$a);
我在我创建的示例函数中使用 count($resut)
,但您可以简单地 return $a
并且可以 print_R(array_Diff_custom)
检查输出...
您可以只从第一个数组中取消设置出现在第二个数组中的项目一次
function array_diff_custom($a,$b){
foreach($b as $x){
if($k = array_keys($a, $x)) {
unset($a[$k[0]]);
}
}
return $a;
}
print_r(array_diff_custom($a,$b));
$a = ["a","b","c","a","b"];
$b = ["a","c"];
array_diff($a,$b);
//output will be [b,b]
但这不是真正的区别它也可以是
//output [b,a,b] <- this is what I am trying to achieve
我尝试了 foreach 循环和 for 循环,但未能得到它...
我试过的每个例子
$a = ["a","b","c","a","b"];
$b = ["a","c"];
echo array_diff_custom($a,$b),"<br>";
function array_diff_custom($a,$b){
$result =0;
foreach($a as $key=>$val){
foreach($b as $key2=>$val2){
if($val == $val2){
unset($a[$key]);
}
}
}
$result = count($a);
return $result;
}
echo array_diff_custom($b,$a);
for循环例子,我试过了
$a = ["a","b","c","a","b"];
$b = ["a","c"];
echo array_diff_custom($a,$b),"<br>";
function array_diff_custom($a,$b){
$result =0;
for($i=0;$i<count($a);$i++){
for($j=0;$j<count($b);$j++){
//echo $a[$i]."-".$b[$j]."<br>";
if($a[$i] == $b[$j]){
unset($a[$i]);
}
}
}
$result = count($a);
return $result;
}
echo array_diff_custom($b,$a);
我在我创建的示例函数中使用 count($resut)
,但您可以简单地 return $a
并且可以 print_R(array_Diff_custom)
检查输出...
您可以只从第一个数组中取消设置出现在第二个数组中的项目一次
function array_diff_custom($a,$b){
foreach($b as $x){
if($k = array_keys($a, $x)) {
unset($a[$k[0]]);
}
}
return $a;
}
print_r(array_diff_custom($a,$b));