我们在变量$ 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无法读取,请帮我搞定。
答案 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