//Elimizde şöyle şuradaki gibi bir array olsun
$meyveler = array("Elma", "Armut", "Muz", "Kiraz");
$baslik= "elma ile tatlı yapma";//Buda durmadan değişen dengesiz bir cümle olsun
//Buda bir elma olsun
elmaYardımlarınızı seviyorum.
Array ile değişken içerisin de arama
8
●751
- 16-07-2015, 01:22:07Array içinde ki kelimelerden herhangi biri $baslik içerisin de var ise kelimeyi yazsın
- 16-07-2015, 02:15:30Üyeliği durduruldu
function varmi($veri){ $meyveler = array("Elma", "Armut", "Muz", "Kiraz"); $adet = count(array_intersect(explode(' ',$veri),$meyveler)); if($adet > 0 ) return "Var"; return "yok"; } $baslik = "Elma ile tatlı yapma"; echo varmi($baslik); // Çıktı -> VarMantığı şöyle
Cümleyi parçalayıp array yapıyosun sonra meyveler dizisi ile karşılaştırıyorsun.
array_intersect ortak elemanları döndürüyo. count ile sayısını aldık eğer 0 dan büyükse vardır yoksa yoktur
- 16-07-2015, 02:16:55Temelde böyle bir şey işinizi görmeli ama ek almış halleri tekrarlananlar vs. gibi detayları hesaba katarsanız daha spesifik bişeyler hazırlanmalı.
$meyveler = array("Elma", "Armut", "Muz", "Kiraz"); $baslik= "elma ve armut ile tatlı yapma"; $pattern = implode("|", $meyveler); preg_match_all("#$pattern#i", $baslik, $output); var_dump($output); /* array (size=1) 0 => array (size=2) 0 => string 'elma' (length=4) 1 => string 'armut' (length=5) */ - 16-07-2015, 02:19:10Üyeliği durdurulduTabiki de öyle yapılabilir. Ama bir sürü kelimenin olduğunu düşün ??phpkoder adlı üyeden alıntı: mesajı görüntüle
Böylesi daha sağlıklı. - 16-07-2015, 03:08:19İlgileriniz hoşuma gitti şimdi hepinizin mantığını tek tek uygulayacağım sizden önce kendim şöyle bir metod uyguladım buda işimi gördü ama her kelime için ayrı ayrı yazdığımdan kod gereksizliği oluştu
$Meyveler= array( "Erik" =>'Erik', "Elma" =>'Elma' ); $bul= "Erik tatlısı"; $bul= explode(" ",$bul); if (in_array($Meyveler["Erik"], $bul)) { echo $Meyveler["Erik"]; }
--R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 03:08:19 -->-> Daha önceki mesaj 03:02:43 --
Peki eşleşen kelimeyi yazmasını nasıl sağlarız bana eşleşen kelime lazımNodeJs adlı üyeden alıntı: mesajı görüntüle - 16-07-2015, 03:20:23Üyeliği durdurulduMoreMor adlı üyeden alıntı: mesajı görüntüle
function varmi($veri){ $meyveler = array("Elma", "Armut", "Muz", "Kiraz"); $eslesen = array_intersect(explode(' ',$veri),$meyveler); $adet = count($eslesen); return $adet > 0 ? implode(', ',$eslesen) : 'Yok.'; } $baslik = "Elma ile tatlı yapma Kiraz"; echo varmi($baslik); // Çıktı -> Elma, Kiraz - 16-07-2015, 03:45:40Siz tam olarka ne amaç için kullanacağınızı söylerseniz, daha net cevap yazılabilir. Verdiğim örnekte eşleşen tüm kelimeleri size geri döndürür.
<?php function bul($aranacak, $aranan){ $pattern = implode("|", $aranan); preg_match_all("#$pattern#i", $aranacak, $output); return $output[0]; } $meyveler = array("Elma", "Armut", "Muz", "Kiraz"); $baslik= "elma ve armut ile tatlı yapma"; foreach(bul($baslik, $meyveler) as $meyve){ echo $meyve.'<br>'; } /* çıktı elma armut */ ?> - 16-07-2015, 04:52:39Verdiğin kod ile çok temiz bir şekilde istediğime ulaştım çok teşekkür ederim. Ayrıca bu konuya tüm cevap veren arkadaşlara da ayrı ayrı teşekkür ederim farklı yöntemler öğrenmiş oldum.Met adlı üyeden alıntı: mesajı görüntüle