-4

私は次の機能を持っています。その目的は、検索インデックスに準拠していない要素を配列ツリーでフィルタリングし、テーマを排除することです。この関数を取得して、目的の結果を得ることができます。

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'
            )
        )
    )
)
)

名前が説明と一致する場合は、値を設定解除する必要があります。

4

1 に答える 1

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;
}
于 2012-05-31T14:31:40.387 に答える