我在Codeigniter中使用array_udiff()
在两个对象数组之间运行了许多比较。每次比较都运行两次,一次'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);
}
关于这里可能会发生什么或者我如何进行调试的任何建议都是非常受欢迎的。