配列にブール値のみが含まれていることを確認するには、クエリ関数によって返された値を二重否定します (もちろん、既に true/false を返している場合を除きます)。
result_array[] = !! $this->db->query($sql);
代替#1
array(true)
と結果の配列 ( )の間の一意の値を見つけ、result_array
次を使用してサイズがゼロに等しいかどうかを確認できarray_diff
ます。
if (sizeof (array_diff (result_array, array (true)) == 0) {
// all went well
}
代替#2
結果の配列がいずれかの値のみで構成されている場合、true
または以下のようfalse
に使用してハッキングできます。array_product
var_dump (array_product (array (true, false, true)));
var_dump (array_product (array (true, true, true)));
出力
int(0)
int(1)
array_product
は配列のすべての値を互いに乗算します。true
は整数 1 とfalse
整数 0 に評価されるため、これを有利に使用できます。
代替案 #3 (ソース配列を変更しないでください)
次のように、コールバックを使用array_reduce
して配列を単一の値に減らすことができます。
if (array_reduce (result_array, function ($a,$b) {return $a && $b;}, true) == true) {
// all went well
}
これにより、配列のすべての値が暗黙的にbooleanにキャストされ、目的の結果が得られます。
インライン ラムダには最新バージョンの PHP が必要です。ラムダが利用できない場合は、通常の関数名をコールバックとして使用できます。