Is there a simpler, smarter and clearer way to write this?
if (array_key_exists("name", $array) AND array_key_exists("age", $array) AND array_key_exists("size", $array) AND array_key_exists("gender", $array) {
echo "Keys exist!";
}
Use simply isset(), a language construct.
Language constructs are much more faster than functions.
<?php
$findKeys = array('name', 'age', 'size', 'gender');
if (! empty($findKeys) && ! empty($array)) {
foreach ($findKeys as $findKey) {
if (isset($array[$findKey])) {
echo 'Keys exist!';
}
}
}
Explanation:
1) Create an array of 4 keys you need to find.
2) Loop over this array and use isset() to find out if the key (element) exists.
in_array()witharray_keys()$keys = ['name','age','size','gender']; $existCount = count(array_intersect_key(array_flip($keys), $array)) == count($keys);