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";
}

?>
Другие вопросы по тегам