PHP - 检查 assoc 数组值是否有子数组的优雅方法?
PHP - elegant way to check if assoc array value has a subarray?
有什么优雅的方法可以检查是否
$review['passenger']
有没有$review['passenger']['*']
?
试试 is_array()
。它将检查它是否是一个数组 -
if(is_array($review['passenger'])) {
// is an array
}
或者如果你想检查一些 key
是否存在,那么 -
if(array_key_exists('key', $review['passenger'])) { ... }
您可以使用 array_key_exists
:
$array = array(
"passenger" => array(
"*" => "ok"
)
);
if(array_key_exists('*', $array['passenger'])){
echo "ok";
} else {
echo "not ok";
}
我相信 Danius 使用“['*']
”来引用“一个或多个子数组”,而不是将其指定为“the " 子数组。
关于他的问题,验证数组的特定 KEY 是否有子数组的唯一方法是逐一检查其子项,以确定其中是否有任何一个是数组。
它可能不是“优雅”,但它绝对是实用的:
function has_array($arr) {
$has_array = false;
foreach ($arr as $item):
if (is_array($item)):
$has_array = true;
break;
endif;
endforeach;
return $has_array;
}
只需这样调用函数:
$result = has_array($review['passenger']);
希望对您有所帮助。
有什么优雅的方法可以检查是否
$review['passenger']
有没有$review['passenger']['*']
?
试试 is_array()
。它将检查它是否是一个数组 -
if(is_array($review['passenger'])) {
// is an array
}
或者如果你想检查一些 key
是否存在,那么 -
if(array_key_exists('key', $review['passenger'])) { ... }
您可以使用 array_key_exists
:
$array = array(
"passenger" => array(
"*" => "ok"
)
);
if(array_key_exists('*', $array['passenger'])){
echo "ok";
} else {
echo "not ok";
}
我相信 Danius 使用“['*']
”来引用“一个或多个子数组”,而不是将其指定为“the " 子数组。
关于他的问题,验证数组的特定 KEY 是否有子数组的唯一方法是逐一检查其子项,以确定其中是否有任何一个是数组。
它可能不是“优雅”,但它绝对是实用的:
function has_array($arr) {
$has_array = false;
foreach ($arr as $item):
if (is_array($item)):
$has_array = true;
break;
endif;
endforeach;
return $has_array;
}
只需这样调用函数:
$result = has_array($review['passenger']);
希望对您有所帮助。