array_udiff()
Codeigniterを使用して、オブジェクトの 2 つの配列間で多くの比較を実行しています。各比較は 2 回実行されます。1 回目は 'b' に対して 1 回、'b' は 'a' に対して 1 回です。
ほとんどの比較は正常に機能していますが、1 つが機能していません。関数に渡される前に配列を検査すると、両方ともデータでいっぱいですが、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);
}
ここで何が起こっているのか、またはこれをデバッグする方法についての提案は大歓迎です。