PHP количество раз появляется слово
Я пытаюсь выучить немного PHP, и у меня есть кое-что, на чем я застрял.
Я использую SOAP. Могу ли я сопоставить слово с тем, что находится в массиве, а затем вывести число раз, когда это слово было отображено в массиве?
В настоящее время у меня есть это, которое выводит то, что я хочу соответствовать, но я не могу найти способ показать, сколько раз слово появляется.
$facilities = $message->Facilities->FacilityInfo;
foreach ($facilities as $data) {
echo $data->Name."<br>";
}
Любая помощь будет отличной!
2 ответа
Как отметил Ниранджан, вы можете использовать оператор if в цикле и считать конкретные слова.
$cnt = array();
foreach ($facilities as $data) {
if ($data->Name == "Jan") $cnt++; // the best given name ever ;-)
echo $data->Name."<br>";
}
echo "Count of Jan: " . $cnt;
В качестве альтернативы, если весь $facilities
массив состоит только из слов, вы можете сделать более абстрактный подход:
$cnt = array();
$facilities = ['Jan', 'Ben', 'Jan', 'Agathe', 'Christine', 'Jan'];
foreach ($facilities as $name) {
$cnt[$name]++;
echo $name."<br>";
}
print_r($cnt);
// array("Jan" => 3, "Ben" => 1, "Agathe" => 1, "Christine" => 1);
Помимо моего нарциссического расстройства личности (считая меня пару раз, то есть;-)), это может быть хорошей отправной точкой.
Ты можешь использовать:
<?php
$searchWord = 'search';
$message = "search search no yes maybe works";
$words = explode(" ", $message);
if (in_array($searchWord,$words)) {
$cntArray = array_count_values($words);
echo $cntArray[$searchWord] . " $searchWord word count";
}
?>