Как удалить все элементы массива PHP, содержащие определенную подстроку?

хорошо, я посмотрел некоторые функции, и мне не повезло найти какие-либо,

я хочу отфильтровать массив, чтобы раздеть определенный массив, который содержит некоторую строку

Вот пример:

<code>$array(1 => 'January', 2 => 'February', 3 => 'March',);
$to_remove = "Jan"; // or jan || jAn, .. no case sensitivity
$strip = somefunction($array, $to_remove);
print_r($strip);
</code>

должно вернуться

<code>[1] => February
[2] => March
</code>

функция, которая ищет подстроку для всех значений в массиве, если подстрока найдена, удалите этот элемент из массива

 user55784606 мая 2012 г., 23:00
несколько десятков примеров на странице руководства, что еще вы хотите?
 user55784606 мая 2012 г., 22:57
после 7 вопросов хотя бы один из них должен был иметь приемлемый ответ.
 Marc B06 мая 2012 г., 22:56
Php.net / array_filter? Функции PHP довольно легко найти, и они названы в честь того, что они делают ...
 Lili Abedinpour06 мая 2012 г., 22:58
@ marc да, но php не так много информации об этой функции, я хочу посмотреть, как она работает, как я хочу выше
 Marc B06 мая 2012 г., 22:59
Связанная страница документации по PHP содержит множество примеров использования этой функции.

Ответы на вопрос(3)

Вы можете использоватьarray_filter () с Закрытие (встроенная функция):

array_filter(
  $array,
  function ($element) use ($to_remove) {
    return strpos($element, $to_remove) === false;
  }
);

(Версия PHP> = 5.3)

Самый простой способ - сarray_filter. Эта функция получает массив для фильтрации и функцию обратного вызова, которая выполняет фактическую фильтрацию на основе полученного значения:

function filter_func( $v )
{
  return ( ( $var % 2 ) == 0 );
}
$test_array = array( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 );
print_r( array_filter( $test_array, "filter_func" ) );

Надежда помогла!

Решение Вопроса

Вы можете использовать Array_filter а также Stripos

$array = array(1 => 'January', 'February', 'March');
print_r(array_filter($array, function ($var) { return (stripos($var, 'Jan') === false); }));
 Lili Abedinpour06 мая 2012 г., 23:13
хороший ответ, спасибо!
 Lili Abedinpour06 мая 2012 г., 23:07
работает хорошо, но как отключить чувствительность к регистру?
 mpratt06 мая 2012 г., 23:10
При использовании функции stripos вам не нужно беспокоиться о чувствительности к регистру.
 mpratt06 мая 2012 г., 23:30
Затем измените=== false с!== false. В этом случаеreturn (stripos($var, 'fEb') !== false).
 Lili Abedinpour06 мая 2012 г., 23:25
последний вопрос, как вернуть только те массивы, которые содержат определенную строку?

Ваш ответ на вопрос