【问题标题】:How to count value from strstr function php? [duplicate]如何计算strstr函数php的值? [复制]
【发布时间】:2016-10-20 09:23:43
【问题描述】:

我尝试在符号“@”之后获取值并对其进行计数。但是这段代码没有给出正确的结果。如何解决?

$t="Hi, I invite @nina and @nana to come to my party tomorow";
$arr=explode(' ', $t);
foreach($arr as $user ) {
$result=strstr($user, '@');
$total = $count($result);
}
echo $total;

结果 = 1

预期结果 =2

【问题讨论】:

  • 仔细看@arr=explode(' ', $t);
  • 您的代码还有更多错误。请在您的问题中包含工作代码(并检查是否确实如此)。
  • 每次代码循环(来自foreach)时,您都在分配计数(此处不正确为$count(),而应该是count())。每次代码循环时,它都会为$total 分配一个新值。如果你想要一个累计总数,而不是$total = count($result);,使用$total += count($result); 在循环的开始,在foreach语句之前,用$total = 0;初始化值
  • 您将其命名为$total,您想在其中存储一个总数,但是您在每次迭代时都会在其中添加一个新值。顺便说一句,您输入的值是错误的。
  • 使用来自preg_match_all()stackoverflow.com/a/23268269/2943403的返回

标签: php arrays string strstr


【解决方案1】:

为什么不用@来爆破呢?

$t = "Hi, I invite @nina and @nana to come to my party tomorow";
$arr = explode('@', $t);
$total = count($arr) - 1;
echo $total;

编辑:正如@mickmackusa 所建议的,如果你想避免计算单独的@,你可以计算旁边的那些,然后减去。

$t = "Hi, I invite @nina and @nana to come to my party tomorow";
$arr = explode('@', $t);
$solos = explode('@ ', $t);
$total = count($arr) - 1 - count($solos);
echo $total;

【讨论】:

  • 因为它不能识别单独的 @ 符号。提及之后需要使用非空格。
  • @mickmackusa 更新了答案,感谢您指出这一点。
【解决方案2】:

试试这个代码。

$t="Hi, I invite @nina and @nana to come to my party tomorow";
$arr=explode(' ', $t);
$total =0;
foreach($arr as $user ) {
$result=strstr($user, '@');
$total = $count($result);
$total++;
}
echo $total;

【讨论】:

  • 此仅代码答案未经测试,将不起作用。为什么它被赞成?这个答案是在浪费研究人员的时间。
猜你喜欢
  • 1970-01-01
  • 2016-07-01
  • 2014-04-25
  • 1970-01-01
  • 2019-08-21
  • 1970-01-01
  • 2013-05-30
  • 2011-02-24
  • 1970-01-01
相关资源
最近更新 更多