簡體   English   中英

多維數組中的鍵/值搜索

[英]Key/Value Search in Multidimensional Array

在構建Google Feed時,我需要一種方法,可以根據尺寸為年齡組返回多維數組中的鍵:

$sizeArray = array("Newborn" => "0-3m", 
                   "Infant" => array("3-6m", "6-12m"), 
                   "Toddler" => array("12-18m", "18-24m", "2T", "3T", "4T", "5"), 
                   "Kids" => array("6", "7", "8")
             );

我希望它看起來像這樣:

findKey("18-24m", $sizeArray);

會返回: Toddler

如果有更好的方法可以做到這一點,我全神貫注。 提前致謝!

您可以執行以下操作:

$sizeArray = array("Newborn" => "0-3m", 
                   "Infant" => array("3-6m", "6-12m"), 
                   "Toddler" => array("12-18m", "18-24m", "2T", "3T", "4T", "5"), 
                   "Kids" => array("6", "7", "8")
             );

foreach($sizeArray as $key => $array) {
    if(is_array($array)) {
        if(array_search('18-24m', $array)) {
            echo $key;
        }
    }
}

希望能幫助到你! :d

恐怕您將不得不求助於數組。

function findKey($size,$array) {
    foreach($array as $groupName => $data) {
        if(is_array($data)){                // first element is not an array...so check it.
            if(in_array($size,$data)) {
                return $groupName;
            }
        }elseif($size == $data){
            return $groupName ;
        }
    }
    return false;
}

這將搜索多維數組中的每個數組以獲取給定的大小,如果找到了大小,則返回其名稱。 如果找不到給定大小的組,則返回false。

創建一個函數來查找鍵:

function findKey($findKey, $array)
{
  foreach($array as $key => $val)
  {
    if(in_array($findKey, $val))
      return $key
  }
  return false;
}

現在,您可以將一個數組和鍵傳遞給函數以找到鍵,如下例所示:

 $sizeArray = array("Newborn" => "0-3m", 
                       "Infant" => array("3-6m", "6-12m"), 
                       "Toddler" => array("12-18m", "18-24m", "2T", "3T", "4T", "5"), 
                       "Kids" => array("6", "7", "8")
                 );
findKey("18-24m", $sizeArray);

暫無
暫無

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

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