0

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);
}

ここで何が起こっているのか、またはこれをデバッグする方法についての提案は大歓迎です。

4

0 に答える 0