Как я могу вернуть массив, если он совпадает с одним конкретным полем.искать массив и возвращать массив
Чтобы сделать его более ясным, предположим, что у меня есть массив, который выглядит так ---
[1] => Array
(
[id] => 11
[category] => phone cases
[sale_price] => 90,99
[price] => 120
[product_name] => "iphone 6 plus" case transparent
)
[2] => Array
(
[id] => 13
[category] => shoes
[sale_price] => 180,99
[price] => 200
[product_name] => blue platform shoes
)
[3] => Array
(
[id] => 14
[category] => wallet
[sale_price] => 150
[price] => 250
[product_name] => valvet wallet
Так что я хочу здесь в том, что если я искать valvet он должен искать в массива [product_name] и вернуть массив с другими полями.
Например ---
если я искать valvet он должен вернуть -
[0] => Array
(
[id] => 14
[category] => wallet
[sale_price] => 150
[price] => 250
[product_name] => valvet wallet
)
Это мой PHP-код, что я пытаюсь сделать -
$data = 'plus'; // what i want to search
$search = my_array_search($all_data, $data);
function my_array_search($array, $string)
{
$ret = false;
$pattern = preg_replace('/\s+/', ' ', preg_quote($string, '/'));
foreach($array AS $k => $v) {
$res = preg_grep('/' . $pattern . '/', $v);
if(!empty($res)) $ret[$k] = $res;
}
return $ret;
}
Но это только возвращает ["product_name"]
не массив, который соответствует !!
Как я могу исправить это, кто-то может помочь мне исправить эту проблему !!!
Большое спасибо за ваш великий ответ :) –