Ben basit bir kelime filtresi yapmaya çalışıyorum başka bir csv dosyası var. Örneğin, benim text.csv dosyası şuna benzer:
name, age, hobbies
Tom, 8, "football, soccer, baseball, wii, star wars, books"
Bill, 9, "football, baseball, ice hockey, basketball"
Sue, 8, "baseball, soccer, volleyball, bicycles, skating"
Mike, 8, "basketball, music, guitar, cartoons, books"
Ella, 9, "soccer, basketball, softball, clothes, books"
Tim, 9, "football, baseball, basketball, wii, cartoons"
Steven, 8, "baseball, soccer, star wars, cartoons, books"
Ben üçüncü sütuna göre filtre etmek istiyorum. Ben göre filtre Örneğin, "Wii" Ben geri gönderilen satır 1 ve 6 alacak:
Tom, 8, "football, soccer, baseball, wii, star wars, books"
Tim, 9, "football, baseball, basketball, wii, cartoons"
Ben "wii" veya "gitar" ile filtre Eğer ben satır 1, 4, alacak, ve 6. geri gönderdi.
Tom, 8, "football, soccer, baseball, wii, star wars, books"
Mike, 8, "basketball, music, guitar, cartoons, books"
Tim, 9, "football, baseball, basketball, wii, cartoons"
Strpos gibi bir şey iyi ise emin değilim ama - ben php ve diziler de iyi değilim, ama ben preg_match ile karıştırmasını denedim. İşte yaptık ama doğru çalışması için alınamıyor ne:
<?PHP
$firstWord = 'wii';
$secondWord = 'guitar';
$file = fopen('text.csv', 'r');
while (($line = fgetcsv($file)) !== FALSE)
{
list($name[], $age[], $hobbies[]) = $line;
if (preg_match($firstWord, $hobbies[0]) || (preg_match($secondWord, $hobbies[0]) {
echo $name . ',"' .$age . '",' .$hobbies . "<br> \n";
} else {
echo "A match was not found.<br> \n";
}}
?>
Herhangi bir kodlama yardım takdir edilmektedir. Ayrıca arama duyarlı olması olması güzel olurdu. Okumak için teşekkürler!