[英]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.