Я ищу функцию, в которой задан этот массив,
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..
Я хочу найти иглу
"Хлеб"
и получим следующий результат:
[1] => array( ['text'] =>'I like Apples and Bread' ['id'] =>'283923' ) [2] => array( ['text'] =>'I like Apples, Bread, and Cheese' ['id'] =>'3384823'
Используйте array_filter
. Вы можете предоставить обратный вызов, который решает, какие элементы остаются в массиве и который должен быть удален. (Возвращаемое значение false
из обратного вызова указывает, что данный элемент должен быть удален.) Что-то вроде этого:
$search_text = 'Bread'; array_filter($array, function($el) use ($search_text) { return ( strpos($el['text'], $search_text) !== false ); });
Чтобы получить больше информации:
array_filter
strpos
также проверьте этот ответ
$filenames=array("120_120_435645.jpg","150_150_312312.jpg","250_250_1232327.jpg"); $matches = preg_grep("/312312/", $filenames);
есть ли причина для множественного массива. id уникален и может использоваться как индекс.
$data=array( array( 'text' =>'I like Apples', 'id' =>'102923' ) , array( 'text' =>'I like Apples and Bread', 'id' =>'283923' ) , array( 'text' =>'I like Apples, Bread, and Cheese', 'id' =>'3384823' ) , array( 'text' =>'I like Green Eggs and Ham', 'id' =>'4473873' ) );
$ FindMe = 'хлеб';
foreach ($data as $k=>$v){ if(stripos($v['text'], $findme) !== false){ echo "id={$v[id]} text={$v[text]}<br />"; // do something $newdata=array($v[id]=>$v[text]) } }