ウェブショップをアップグレードしているため、フィルタリングが少し異なります。ここで、選択した 1 つ以上のフィルター値に関連するすべての製品 ID を取得するだけです。
//Filter value '8 GB'
$result[] = array(1,6,5,8,9);
//Filter value 'AMD E' (and)OR 'INTEL'
$result[] = array(1,5,8,9,10,500,502,503,600,607,608,...);
「AMD E」と「INTEL」の値は同じフィルター「プロセッサ」からのものであるため、ビジターが AMD E または INTEL プロセッサを搭載したすべての製品を希望しているため、これらを組み合わせてください。
ここで、両方のアレイにある ID のみを選択したいと思います。これまでにたくさんのメソッドを試しましたが、どの試行でも期待どおりの結果が返されません。
問題は、キー => 配列のペア$result
の数が、SQL によって返される ID の数と同じように動的であることです。の最初の配列$result
が ID の短いリストであるarray_intersect()
場合、 に複数の配列がある場合、期待されるすべての結果が返されません$result
。
merge_array()
すべてを組み合わせるだけです。そのため、訪問者は、8 GB のメモリを搭載した製品、または AMD E または INTEL プロセッサを搭載した製品をすべて見ることができます。
('8 GB') AND ('ADM E' OR 'INTEL') ソリューションを探しています。
('8 GB' OR '12 GB') AND ('ADM E' OR 'INTEL') AND ('HP' OR 'Apple' OR 'Sony')
(状況と私たちが今何をしようとしているのかを説明しようとしているあなたを失いませんでした:s)
また、SQL を使用して処理を実行することも試みました。この質問で読むことができるように、運はありません。
誰かが前にこのようなことに取り組んだことがありますか?