Отфильтровать элементы плоского массива, которые не содержат все условия поиска.Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Отфильтровать элементы плоского массива, которые не содержат все условия поиска.

Сообщение Anonymous »

У нас есть массив, например:

Код: Выделить всё

$my_array = array(
'Software Engineering',
'Civil Engineering',
'Hardware Engineering',
'BL AH Engineering'
);
Теперь у меня есть переменная «$q», я хочу выполнить поиск между значениями массива, удалить ключи, которые не содержат $q, вот мой код:

Код: Выделить всё

foreach ($my_array as $key => &$value) {
if (stripos(($value), $q) === false) {
unset($my_array[$key]);
}
}
теперь, если мы установим $q = 'eer':

Код: Выделить всё

var_dump($my_array);
array
0 => string 'Software Engineering' (length=20)
1 => string 'Civil Engineering' (length=17)
2 => string 'Hardware Engineering' (length=20)
3 => &string 'BL AH Engineering' (length=17)
как видите, ничего не удаляется, поскольку все значения $ имеют значение «eer» в «Инженерное дело»
это нормально, но теперь я установил $q = «eer Civil»< /code>, сейчас:

Код: Выделить всё

var_dump($my_array);
array
empty
Все элементы удалены, но на самом деле «Гражданское строительство» содержит как «eer», так и «гражданское», поэтому его не следует удалять. Как мне заставить это работать? Я могу взорвать $q с помощью пробела, но это не работает.

Подробнее здесь: https://stackoverflow.com/questions/132 ... arch-terms
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»