現在、次のものを使用しています。
$a = array('foo' => 'bar', 'bar' => 'foo');
if(isset($a['foo']) && isset($a['bar'])){
echo 'all exist';
}
ただし、チェックしなければならないfoo
とよりも多くの配列キーがあります。必要なエントリごとにbar
追加するよりも、必要なキーごとにチェックする効率的な方法はありますか?isset
isset()
1 回の呼び出しでそれらを組み合わせることができます。
if (isset($a['foo'], $a['bar']) {
echo 'all exist';
}
必要なすべてのキーの配列がある場合は、次のことができます。
if (count(array_diff($required_keys, array_keys($a))) == 0) {
echo 'all exist';
}
チェックするすべてのエントリの配列を作成し、それらすべてを反復処理できます。
$entries = array("foo", "bar", "baz");
$allPassed = true;
foreach($entries as $entry)
{
if( !isset( $a[$entry] ) )
{
$allPassed = false;
break;
}
}
$allPassed = true の場合、すべて正常です。false は、1 つ以上の失敗を意味します。
おそらく一番きれいなのは
if (array_diff(['foo', 'bar'], array_keys($a))) === []) {
echo 'all exist';
}