Filter multidimensional array based on partial match of search value
filtering, multidimensional-array, partial-matches, php
Solution
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
Problem
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' ```