Checks if a particular path is set in an array. Tests by key name, or dot-delimited key
name, i.e.:
{{{
$set = array('My Index 1' => array(
'First' => 'The first item'
));
$result = Set::check($set, 'My Index 1.First');
}}}
Parameters
- mixed $data Data to check on.
- mixed $path A dot-delimited string.
Returns
boolean `true` if path is found, `false` otherwise.Source
public static function check($data, $path = null) {
if (!$path) {
return $data;
}
$path = is_array($path) ? $path : explode('.', $path);
foreach ($path as $i => $key) {
if (is_numeric($key) && intval($key) > 0 || $key === '0') {
$key = intval($key);
}
if ($i === count($path) - 1) {
return (is_array($data) && isset($data[$key]));
} else {
if (!is_array($data) || !isset($data[$key])) {
return false;
}
$data =& $data[$key];
}
}
}