我有这样的代码,还给3个阵列,我想您在所有3个副本,然后只保留1的值。但是,因为数组在循环array_unique生成/ array_差异不会工作。
是有这个问题的任何解决方案?
foreach ($ci AS $i) {
if($i == 0){
continue;
}
$cfsi = $cate->getCategoriesFeatureID($i);
echo "<pre>";
print_r($cfsi);
echo "</pre>";
}
结果我得到
Array
(
[0] => 14
[1] => 15
[2] => 16
[3] => 18
[4] => 19
[5] => 20
[6] => 27
)
Array
(
[0] => 14
[1] => 15
[2] => 16
[3] => 17
[4] => 18
[5] => 19
[6] => 20
[7] => 21
[8] => 27
[9] => 28
)
Array
(
[0] => 11
[1] => 14
[2] => 16
[3] => 18
[4] => 19
[5] => 27
[6] => 28
)
我在寻找的结果
Array
(
[0] => 14
[1] => 15
[2] => 16
[3] => 18
[4] => 19
[5] => 20
[6] => 27
)
Array
(
[0] => 17
[1] => 21
[2] => 28
)
Array
(
[0] => 11
)
你可以做的是什么存储先前显示每次只(使用array_diff()
)报告从当前的差异来此之前的值。然后,在循环结束的当前值移动至前值。
$previous = [];
foreach ($ci AS $i) {
if($i == 0){
continue;
}
$cfsi = $cate->getCategoriesFeatureID($i);
$difference = array_values(array_diff($cfsi, $previous));
echo "<pre>";
print_r($difference);
echo "</pre>";
$previous = $cfsi;
}