私のすべての製品がリストされている配列のリストがあります。サンプル配列:私が達成したい何検索フォームを使用した配列リストのフィルターデータ
$products = array();
$products[] = array('name'=> 'Product 1','description' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
'location' => 'A city', 'type' => 'Type 1', 'status' => 'new', 'tags'=>'', 'page_url'=>'p1.html', 'image'=>'products/assets/images/1/prod-image.jpg');
$products[] = array('name'=> 'Product 2','description' => 'Donec eleifend quam neque, ut mollis massa aliquet id.',
'location' => 'B city', 'type' => 'Type 1', 'status' => 'under', 'tags'=>'show-homepage', 'page_url'=>'p2.html', 'image'=>'products/assets/images/2/prod-image.jpg');
$products[] = array('name'=> 'Product 3','description' => 'Nam non tristique mi.',
'location' => 'A city', 'type' => 'Type 3', 'status' => 'new', 'tags'=>'', 'page_url'=>'p3.html', 'image'=>'products/assets/images/3/prod-image.jpg');
$products[] = array('name'=> 'Product 4','description' => 'Vestibulum accumsan dolor id orci gravida viverra.',
'location' => 'C city', 'type' => 'Type 2', 'status' => 'new', 'tags'=>'', 'page_url'=>'p4.html', 'image'=>'products/assets/images/4/prod-image.jpg');
は、検索フォームを使用して濾過したすべての製品を表示することです。 SQLクエリ条件WHERE location = $_GET['location'] AND type = $_GET['type'] AND status = $_GET['status']
と同様です。
<form name="search-form" method="GET">
<div class="searchform-title">Location</div>
<div style="margin-bottom:20px;">
<select name="location" style="width:100%; padding:5px">
<option value='Any' selected>Any</option>
<option value='A city'>A city</option>
<option value='B City'>B City</option>
<option value='C city'>C city</option>
<option value='D city'>D city</option>
<option value='L city'>L city</option>
<option value='M city'>M city</option>
<option value='T city'>T city</option>
</select>
</div>
<div class="searchform-title">Type</div>
<div style="margin-bottom:20px;">
<select name="type" style="width:100%; padding:5px">
<option value='Any' selected>Any</option>
<option value='Type 1'>Type 1</option>
<option value='Type 2'>Type 2</option>
<option value='Type 3'>Type 3</option>
<option value='Type 4'>Type 4</option>
</select>
</div>
<div class="searchform-title">Status</div>
<div style="margin-bottom:20px;">
<select name="status" style="width:100%; padding:5px">
<option value='Any' selected>Any</option>
<option value='New'>New</option>
<option value='Old'>Old</option>
<option value='Under'>Under</option>
</select>
</div>
<input class="proj-search-btn" type="submit" name="search" value="Search"/>
</form>
:
この
は私のHTMLフォームである..選択された値がAny
(例:ロケーションまたはステータス=任意)である場合、それは関係なく、位置および状態、またはその逆の産物のみ
type
をフィルタリングすることを考えます
私が今まで試したことは、関数を使用していますが、製品の位置だけを取得することです。 サンプル関数コードは次のとおりです。 See sample code
検索フォームを使用して配列のリスト内の項目を検索するより良い方法はありますか?検索する3つの選択された値(クエリ)を持っていますか?
一つの方法は、前の呼び出しと新しい属性の結果を使用して検索機能を呼び出すことであろう。 –
@ MasterDJonフィルタリングされた最初の配列に新しい属性を追加するにはどうすればよいですか? –
'$ productsFiltered = search($ products、 'firstKey'、 'firstValue');あなたのソリューションを使用して$ productsFiltered = search($ productsFiltered、 'secondKey'、 'secondValue);' –