У меня странное явление. Я надеюсь, что кто-то может объяснить мне, что там происходит:
Я хочу создать фильтр. Источник - что-то вроде '-10' или '10 -20 'или '20 +' (строка типа), а результатом должно быть «Менее $ 10», ... а также «product_price <10», ... для команда sql. </p>
Но сохранение массива обратно в исходную строку не работает. В результате получается только массив $ Array. Разве нельзя перейти по ссылке и изменить тип?
Спасибо за ваши знания!
foreach($filters as &$filter){
preg_match ('#^\-(\d+)$#ism', $filter, $match);
if ($match[1]){
$filter = array(
'Under $'.intval($match[1]),
'product_price < '.intval($match[1])
);
}
...
}
return $filtering;
}
PS: я не ищу решения, потому что я мог бы изменить исходную строку на массив, или я мог бы изменить foreach
на pass by value
и создать новый массив с массивами, такими как $ newFilter [] = ... Мне только любопытно