有没有优雅的方法来检查
$review['passenger']
有$review['passenger']['*']
吗?
答案 0 :(得分:2)
尝试使用is_array()
。它会检查它是否是一个数组 -
if(is_array($review['passenger'])) {
// is an array
}
或者,如果您想检查某些key
是否存在,那么 -
if(array_key_exists('key', $review['passenger'])) { ... }
答案 1 :(得分:1)
我相信Danius正在使用“['*']
”来引用“一个或多个子阵列”,而不是将其指定为“ ”子阵列。
关于他的问题,验证数组的特定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']);
我希望它有所帮助。
答案 2 :(得分:0)
您可以使用array_key_exists
:
$array = array(
"passenger" => array(
"*" => "ok"
)
);
if(array_key_exists('*', $array['passenger'])){
echo "ok";
} else {
echo "not ok";
}