Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Search for partial value match in an Array

I'm looking for a function where given this array:

array(  [0] =>   array(    ['text'] =>'I like Apples'    ['id'] =>'102923'  )  [1] =>   array(    ['text'] =>'I like Apples and Bread'    ['id'] =>'283923'  )  [2] =>   array(   ['text'] =>'I like Apples, Bread, and Cheese'   ['id'] =>'3384823'  )  [3] =>   array(   ['text'] =>'I like Green Eggs and Ham'   ['id'] =>'4473873'  )  etc..  

I want to search for the needle

"Bread"

and get the following result

[1] =>   array(    ['text'] =>'I like Apples and Bread'    ['id'] =>'283923'  )  [2] =>   array(   ['text'] =>'I like Apples, Bread, and Cheese'   ['id'] =>'3384823' 
like image 268
Chamilyan Avatar asked Aug 03 '11 19:08

Chamilyan


1 Answers

Use array_filter. You can provide a callback which decides which elements remain in the array and which should be removed. (A return value of false from the callback indicates that the given element should be removed.) Something like this:

$search_text = 'Bread';  array_filter($array, function($el) use ($search_text) {         return ( strpos($el['text'], $search_text) !== false );     }); 

For more information:

  • array_filter
  • strpos return values
like image 90
Jon Gauthier Avatar answered Oct 06 '22 02:10

Jon Gauthier