如何使用搜索获取数组中的id?

时间:2016-03-11 09:22:47

标签: php arrays

我们在变量$ categories中有类别(ID和类别名称)列表。但是,由于类别名称通常不明确,我们还有另一个变量将类别名称的变体映射到$ mapped_categories中的原始类别名称。例如,类别名称“Pancakes”映射到原始类别名称“Pancakes / Waffles / Crepes”,因此类别ID为133.

来源http://pastebin.com/yWPh4LkW

Example :
foreach($input_categories as $input_category)
{
   if(in_array($input_category, $categories))
            echo array_search($input_category, $categories).'<br/>';
}

$ mapped_categories无法读取,请帮我搞定。

2 个答案:

答案 0 :(得分:2)

我认为你需要交集

var_dump(array_intersect($input_categories, $categories));

但是,我不知道$ mapped_categories是什么,因为你的问题不清楚。

您可能寻找的其他可能的解决方案是:

$intersected = array_intersect($input_categories, array_keys($mapped_categories));
$found = [];
foreach ($intersected as $el) {
   $found[] = array_search($mapped_categories[$el], $categories);
}

它将根据映射返回找到的类别的键。

答案 1 :(得分:0)

你的问题陈述不清楚,但我在猜测。

如果input_categories中的某个元素与其中一个类别匹配,则返回其index,否则请检查$mapped_categories的mappedCatgory,然后搜索$input_categories并返回{ {1}}(ID)

所以你的代码应该是这样的:

index