Поиск массива возвращает ошибку.preg_match() ожидает, что параметр 2 будет строкой, массив задан
Пусть у меня есть массивы, как так ---
[1] => Array
(
[id] => 11
[category] => phone cases
[country] => sweden
[sale_price] => 90,99
[price] => 120
[currency] => sek
[vat] => 19
[product_name] => "iphone 6 plus" case transparent
[description] => transparent case for iphone 6 plus
)
[2] => Array
(
[id] => 13
[category] => shoes
[country] => sweden
[sale_price] => 180,99
[price] => 200
[currency] => sek
[vat] => 19
[product_name] => blue platform shoes
Сейчас я пытаюсь найти что-то из этого массива, в основном я пытаюсь найти его от $ all_data, [ «PRODUCT_NAME» в] поле
$data = 'plus'; // what i want to search
$search = $this->my_array_search($all_data, $data);
function my_array_search($array, $string) {
$pattern = preg_replace('/\s+/', ' ', preg_quote($string));
return array_filter($array, function ($value) use($pattern) {
return preg_match('/' . $pattern . '/', $value) == 1;
});
}
но снова возвращаются мне ошибку -
р reg_match() ожидает, что параметр 2 является строкой, заданный массив
Что я делаю неправильно, любой знает, как решить эту проблему !!
Элементы вашего массива верхнего уровня - это массивы, а не строки. –
@MaratTanalin, как следует искать из массива –
'$ value' - это массив,' $ value ['product_name'] '- это строка в этом массиве, которая вас интересует. – Sammitch