for döngüsünde array_merge
tablo yapım:
yaziadi | trkelimeler | ingkelimeler |
---|---|---|
AAA | kalem,silgi, kitap | pencil,eraser, book |
BBB | kalem,hesapmakinesi | pencil,calculator |
CCC | kalem | pencil |
... | ... | ... |
... | ... | ... |
for ($i = 0; $i < count($tags); $i++) {
$keyler = array_map('trim', explode(',', $tags[$i]["ingkelimeler"] . ',' .$tags[$i]["trkelimeler"]));
print_r($keyler);
}
Çıktısı:
Array ( [0] => kalem [1] => silgi [2] => kitap [3] => pencil [4] => eraser [5] => book )
Array ( [0] => kalem [1] => hesapmakinesi [2] =>pencil [3] => calculator )
Array ( [0] => kalem [1] => pencil)
şeklinde ayrı ayrı veri dönüyor
bunu array_merge veya array_merge_recursive ile birleştirip tek bir array yapmaya çalıştım ama olmuyor.
Kafam iyice karıştı yapamadım.
Amacım arama sonucunda çıkan 3 yazıya ait kelimeleri birleştirmek ve sonrasında tekrar edenleri ayıklayıp tekrarsız bir sonuç (tag bulutu gibi) ekrana yazdırmak.
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (1)
Aşağıdaki şekilde sonuç aldım. İşine yarayan olursa Çözüm:
$sonuc=[];
foreach ($tags as $item) {
$result = array_merge($sonuc, explode(',', $item["ingkelimeler"] . ',' .$item["trkelimeler"]));
$results=array_unique(array_flip($result));
$label=array_values(array_flip($results));
}
Daha sade nasıl yapılır bilmem, anlayan biri hata veya eksik varsa düzeltirse sevinirim. bu haliyle benim için çalışıyor.