PHPでは、 IS_bool関数を使用して変数がブール値であるかどうかを確認できますが、 Array_filter関数は指定されたコールバック関数に基づいてArrayの要素をフィルタリングできます。これら2つを組み合わせることで、アレイからブール要素を簡単に除外できます。
is_bool() :指定された変数がブール型のものであるかどうかを確認するために使用されます。変数がブール値( trueまたはfalse )である場合にtrueを返し、それ以外の場合はfalseを返します。
<span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">is_bool</span></span><span>(</span><span><span class="hljs-literal">true</span></span><span>)); </span><span><span class="hljs-comment">// bool(true)</span></span><span>
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">is_bool</span></span><span>(</span><span><span class="hljs-number">1</span></span><span>)); </span><span><span class="hljs-comment">// bool(false)</span></span><span>
</span></span>
array_filter() :この関数は、配列内の要素をフィルタリングするために使用されます。 2つのパラメーターを受信します。1つはフィルタリングする配列、もう1つはコールバック関数です。コールバック関数の関数は、どの要素を保持する必要があり、どの要素を削除する必要があるかを決定することです。コールバック関数がtrueを返すと、要素が保持されます。 FALSEの場合、削除されます。
<span><span><span class="hljs-variable">$arr</span></span><span> = [</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-number">4</span></span><span>, </span><span><span class="hljs-number">5</span></span><span>];
</span><span><span class="hljs-variable">$filtered</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_filter</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>, function(</span><span><span class="hljs-variable">$value</span></span><span>) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$value</span></span><span> > </span><span><span class="hljs-number">2</span></span><span>;
});
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$filtered</span></span><span>); </span><span><span class="hljs-comment">// 出力 [3, 4, 5]</span></span><span>
</span></span>
is_boolとarray_filterを組み合わせることにより、配列からすべてのブール要素を除外できます。各要素が単純なコールバック関数を介してブール値であるかどうかを確認できます。ブール値の場合、要素は保持されます。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// アレイの例</span></span><span>
</span><span><span class="hljs-variable">$array</span></span><span> = [</span><span><span class="hljs-literal">true</span></span><span>, </span><span><span class="hljs-literal">false</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-string">"hello"</span></span><span>, </span><span><span class="hljs-literal">null</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-literal">false</span></span><span>];
</span><span><span class="hljs-comment">// 使用 array_filter そして is_bool 組み合わせてブール値をフィルタリングします</span></span><span>
</span><span><span class="hljs-variable">$filteredArray</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_filter</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>, function(</span><span><span class="hljs-variable">$value</span></span><span>) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">is_bool</span></span><span>(</span><span><span class="hljs-variable">$value</span></span><span>); </span><span><span class="hljs-comment">// ブール値のみが保存されます</span></span><span>
});
</span><span><span class="hljs-comment">// 結果を印刷します</span></span><span>
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$filteredArray</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
<span><span>Array
(
[</span><span><span class="hljs-meta">0</span></span><span>] => </span><span><span class="hljs-number">1</span></span><span>
[</span><span><span class="hljs-meta">1</span></span><span>] =>
[</span><span><span class="hljs-meta">5</span></span><span>] => </span><span><span class="hljs-number">1</span></span><span>
[</span><span><span class="hljs-meta">7</span></span><span>] =>
)
</span></span>
この例では、 array_filterは$ array配列内のすべての要素を反復し、ブール値( trueまたはfalse )の要素のみが保存されます。 array_filterは元の配列のキーを保持することに注意してください。
array_filterは、デフォルトでアレイの元のキーを保持します。フィルタリング後に取得した配列キーが連続している場合は、 array_values関数を使用してアレイを再インデックスできます。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$array</span></span><span> = [</span><span><span class="hljs-literal">true</span></span><span>, </span><span><span class="hljs-literal">false</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-string">"hello"</span></span><span>, </span><span><span class="hljs-literal">null</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-literal">false</span></span><span>];
</span><span><span class="hljs-comment">// ブール値と再インデックスキーをフィルターします</span></span><span>
</span><span><span class="hljs-variable">$filteredArray</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_values</span></span><span>(</span><span><span class="hljs-title function_ invoke__">array_filter</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>, function(</span><span><span class="hljs-variable">$value</span></span><span>) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">is_bool</span></span><span>(</span><span><span class="hljs-variable">$value</span></span><span>); // ブール値のみが保存されます
}));
</span><span><span class="hljs-comment">// 結果を印刷します</span></span><span>
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$filteredArray</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
<span><span>Array
(
[</span><span><span class="hljs-meta">0</span></span><span>] => </span><span><span class="hljs-number">1</span></span><span>
[</span><span><span class="hljs-meta">1</span></span><span>] =>
[</span><span><span class="hljs-meta">2</span></span><span>] => </span><span><span class="hljs-number">1</span></span><span>
[</span><span><span class="hljs-meta">3</span></span><span>] =>
)
</span></span>
array_valuesを使用すると、キーが0から始まり、すべてのブール値を保持している新しい配列を取得します。
is_boolとarray_filterを組み合わせることにより、アレイからすべてのブール要素を便利に除外できます。 array_filterは柔軟なフィルタリング機能を提供しますが、 IS_boolは要素がブールタイプのかどうかを正確に判断できます。このアプローチは、データを処理するときにブール値を正確にフィルタリングするシナリオに非常に適しています。
実際の開発では、これらの組み込み関数の使用を理解し、習得することで、配列データを効率的に処理できます。
関連タグ:
array_filter