note 91663 added to function.array-search

From: Date: Mon, 22 Jun 2009 09:51:49 +0000
Subject: note 91663 added to function.array-search
Groups: php.notes 
Request: Send a blank email to php-notes+get-157212@lists.php.net to get a copy of this message
Here is a cool trick: function arr_search ( $array, $expression ) { $result = array(); $expression = preg_replace ( "/([^\s]+?)(=|<|>|!)/", "\$a['$1']$2", $expression ); foreach ( $array as $a ) if ( eval ( "return $expression;" ) ) $result[] = $a; return $result; } $data = array ( array ( "name" => "bill", "age" => 40 ), array ( "name" => "john", "age" => 30 ), array ( "name" => "jack", "age" => 50 ), array ( "name" => "john", "age" => 25 ) ); print_r ( arr_search ( $data, "age>=30" ) ); print_r ( arr_search ( $data, "name=='john'" ) ); print_r ( arr_search ( $data, "age>25 and name=='john'" ) ); -- results -- Array ( [0] => Array ( [name] => bill [age] => 40 ) [1] => Array ( [name] => john [age] => 30 ) [2] => Array ( [name] => jack [age] => 50 ) ) Array ( [0] => Array ( [name] => john [age] => 30 ) [1] => Array ( [name] => john [age] => 25 ) ) Array ( [0] => Array ( [name] => john [age] => 30 ) ) ---- Server IP: 195.221.21.36 Probable Submitter: 217.128.8.36 ---- Manual Page -- http://www.php.net/manual/en/function.array-search.php Edit -- https://master.php.net/note/edit/91663 Del: integrated -- https://master.php.net/note/delete/91663/integrated Del: useless -- https://master.php.net/note/delete/91663/useless Del: bad code -- https://master.php.net/note/delete/91663/bad+code Del: spam -- https://master.php.net/note/delete/91663/spam Del: non-english -- https://master.php.net/note/delete/91663/non-english Del: in docs -- https://master.php.net/note/delete/91663/in+docs Del: other reasons-- https://master.php.net/note/delete/91663 Reject -- https://master.php.net/note/reject/91663 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#157212) next »