簡體   English   中英

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'])) { ... }

相信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']);

我希望它有所幫助。

您可以使用array_key_exists

$array = array(
    "passenger" => array(
        "*" => "ok"    
    )     
);

if(array_key_exists('*', $array['passenger'])){
    echo "ok";
} else {
    echo "not ok";
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM