【问题标题】:PHP Number of Times Word AppearsPHP 单词出现的次数
【发布时间】:2015-11-25 17:05:22
【问题描述】:

我正在尝试学习一些 PHP,但有一些我一直坚持的东西。

我正在使用 SOAP。我是否可以将一个单词与数组中的内容进行匹配,然后输出该单词在数组中显示的次数?

我目前有这个输出我想要匹配的内容,但我似乎无法找到一种方法来显示一个单词出现了多少次。

$facilities = $message->Facilities->FacilityInfo;

foreach ($facilities as $data) {
    echo $data->Name."<br>";
} 

任何帮助都会很棒!

【问题讨论】:

  • 也许使用array_count_values()之类的东西?
  • 如果你想使用 foreach,使用 if() 和一个计数器 ..
  • 我尝试过使用 array_count_values() 但我只是为每个单词得到一个 0 或 1,当我只想将总数作为一个数字时,你能举例说明我将如何使用if() 和计数器?
  • 看起来您提供的代码只是向我们显示您拥有名称,而不是您要在每个名称中检查的字符串?您尝试过什么检查字符串?你甚至想检查一个特定的名字,或者只是看看每个名字有多少?
  • 你能显示你的 array_count_values 使用情况吗?

标签: php match


【解决方案1】:

正如 Niranjan 指出的那样,您可以在循环中使用 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);

除了我的自恋型人格障碍(算上我几次,就是 ;-)),这可能是一个很好的起点。

【讨论】:

    【解决方案2】:

    你可以使用:

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

    【讨论】:

      猜你喜欢
      • 2012-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-09
      • 1970-01-01
      • 2021-11-17
      相关资源
      最近更新 更多