Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $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');
- <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>
- <?php
- $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');
- function search($products, $criteria) {
- return array_filter($products, function($product) use ($criteria) {
- return array_reduce(array_keys($criteria), function($carry, $key) use ($product, $criteria) {
- return $carry && ($product[$key]===$criteria[$key]);
- }, true);
- });
- }
- $r = search($products, array('location'=>'A city', 'type'=>'Type 3'));
- // if you don't care about keys of the array, you can skip sort
- sort($r);
- var_dump($r);
- array(1) {
- [0]=>
- array(8) {
- ["name"]=>
- string(9) "Product 3"
- ["description"]=>
- string(21) "Nam non tristique mi."
- ["location"]=>
- string(6) "A city"
- ["type"]=>
- string(6) "Type 3"
- ["status"]=>
- string(3) "new"
- ["tags"]=>
- string(0) ""
- ["page_url"]=>
- string(7) "p3.html"
- ["image"]=>
- string(39) "products/assets/images/3/prod-image.jpg"
- }
- }
Add Comment
Please, Sign In to add comment