I am currently using the following:
    $a = array('foo' => 'bar', 'bar' => 'foo');
    if(isset($a['foo']) && isset($a['bar'])){
      echo 'all exist';
    }
However, I will have several more array keys than foo and bar that I must check for. Is there a more efficient way to check for each required key than adding an isset for each required entry?
You can combine them in a single isset() call:
if (isset($a['foo'], $a['bar']) {
    echo 'all exist';
}
If you have an array of all the keys that are required, you can do:
if (count(array_diff($required_keys, array_keys($a))) == 0) {
    echo 'all exist';
}
                        You could create an array of all the entries you want to check, then iterate over all of them.
$entries = array("foo", "bar", "baz");
$allPassed = true;
foreach($entries as $entry)
{
    if( !isset( $a[$entry] ) )
    {
        $allPassed = false;
        break;
    }
}
If $allPassed = true, all are good - false means one or more failed.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With