0

我有一个带有类别的标记,例如:“行李”我想知道行李的父类别是什么,以便在地图上设置特定标记。

我为需要显示的每个类别创建了一个顶级类别列表。就像是 :

$education = [ "adultedu", "collegecounseling", "collegeuniv", "educationservices", "elementaryschools", "highs|chools", "preschools", "privatetutors", "religiousschools", "specialed", "specialtyschools", "artschools", "cprclasses", "cookingschools", "cosmetology_schools"]

我得到了相同的交通、购物、健康等清单……

搜索我的关键字来自哪个类别的最佳方法是什么?

4

2 回答 2

1

使用数组并在使用时迭代in_array

$arrays = array(
    'education' => &$education,
    'transport' => &$transport,
    'shopping'  => &$shopping,
    'health'    => &$health
);

$searchingFor = 'foo';

$searchingForCategory = null;
foreach ($arrays as $category => $array) {
    if (in_array($searchingFor, $array)) {
        $searchingForCategory = $category;
        break;
    }
}

var_dump($searchingForCategory); //education / transport / shopping / health / NULL
于 2013-09-26T10:27:32.300 回答
0

您必须使用in_array()函数检查每个数组。

 if (in_array('luggage', $education)) {
     // found
 }

您也可以将所有顶级类别添加到一个数组中,比如说$topCategories;) 然后您可以使用简单的循环检查所有类别:

 $foundInCategory = '';
 foreach ($topCategories as $name => $subCategories) {
     if (in_array('luggage', $subCategories)) {
         $foundInCategory = $name;
         break;
     }
 }

它会将找到子类别的类别名称添加到 variable $foundInCategory

于 2013-09-26T10:26:58.113 回答