我array_udiff()
在 Codeigniter 中使用的两个对象数组之间进行了多次比较。每个比较运行两次,一次是“a”对“b”,一次是“b”对“a”。
大多数比较都工作得很好,但一个不是。当我在将数组传递给函数之前检查数组时,它们都充满了数据,但是当检查 udiff 回调函数中的数组时,一个充满数据,另一个是空的,因此无法进行任何比较。
$comparison = 'test2';
$diff_function = $comparison . '_function';
echo $was; //full
echo $is; //full
$arrdiff1 = array_udiff($was, $is, array('templates', $diff_function)));
$arrdiff2 = array_udiff($is, $was, array('templates', $diff_function)));
test1_function($a, $b) {
return strcmp($a->string1, $b->string1);
//works: returns comparison as expected
}
test2_function($a, $b) {
echo $a; //full
echo $b; //empty
//comparison will result in all elements from $a being returned
return strcmp($a->string2, $b->string2);
}
任何关于这里可能发生的事情或我如何进行调试的建议都将受到欢迎。