在构建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
如果有更好的方法可以做到这一点,那我就是全部的耳朵。提前谢谢!
答案 0 :(得分:0)
您可以这样做:
$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
答案 1 :(得分:0)
我担心你不得不求助于搜索阵列。
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。
答案 2 :(得分:0)
创建一个函数来查找密钥:
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);