我有以下函数,它的目标是在数组树中过滤那些不符合搜索索引并消除主题的元素。我可以使用此功能来获得所需的结果。
public function negativeKeywordsFilter($products, $negative_keywords){
$nk=explode(',',$negative_keywords);
foreach ($products['productItems'] as $product){
foreach ($product as $item){
foreach ($nk as $word){
if (stripos($item['name'],$word) !== false){
unset($item);
}
}
}
}
return $products;
}
我的数组如下所示:
array(
'page' => '1',
'items' => '234',
'items' => array(
'item' => array(
0 => array(
'name' => 'second',
'description' => 'some description'
)
)
)
)
)
如果name与描述匹配,则应取消设置值。
答案 0 :(得分:2)
问题是你只是取消设置了一个具有值的副本的变量,你需要取消设置数组中相应的元素。
public function negativeKeywordsFilter($products, $negative_keywords){
$nk=explode(',',$negative_keywords);
foreach ($products['productItems'] as $key1 => $product){
foreach ($product as $key2 => $item){
foreach ($nk as $word){
if (stripos($item['name'],$word) !== false){
unset($products['productItems'][$key1][$key2]);
}
}
}
}
return $products;
}