Php belirli bir kelime içermiyor bütün satırları silin

3 Cevap

i, belirli bir kelime içermiyor / filtre diziler silebilirsiniz bazı kodu gerekir

ya da biz tutmak sadece belirli bir kelime içeren söylüyorlar ve diğer tüm olanları bırakın

bir daha az kaynak kullanan??

update : the correct answer to my problem is

<?php

$nomatch = preg_grep("/{$keyword}/i",$array,PREG_GREP_INVERT);

?>

PREG_GREP_INVERT dikkat edin.

Yani $ anahtar bulundu DEĞİLDİR $ dizinin tüm girdileri içeren bir dizi ($ NOMATCH) neden olacaktır.

so you have to remove that invert and use it :) $nomatch = preg_grep("/{$keyword}/i",$array);

şimdi sadece alacak o belirli kelime hatları

3 Cevap

Sen preg_grep ile kullanabilirsiniz

$nomatch = preg_grep("/$WORD/i",$array,PREG_GREP_INVERT);

Daha genel bir çözelti, özel bir filtre ile array_filter kullanmaktır

function inverseWordFilter($string)
{
    return !preg_match("/$WORD/i" , $string);
}


$newArray = array_filter  (  $inputArray, "inverseWordFilter" )

/ Desen sonunda i vaka insenstive demektir, o harfe duyarlı hale çıkarın

Eğer PREG_GREP_INVERT seçeneği ile preg_grep kullanabilirsiniz

Bu böyle basit bir sorun olduğundan, yerine gerçek kod size pseudo-kod vereceğim - hala onunla biraz eğlenmek emin olmak için:

Create a new string where you'll keep the result
Split the original text into an array of lines using explode()
Iterate over the lines:
- Check whether the current line contains your specific word (use substr_count())
-- If it does, skip over that line
-- If it does not, append the line to the result