如何正确计算?

时间:2018-12-13 17:36:02

标签: php

我有一个字符串:

$string = "[Rank 10] Carlos_Regenz [Rank 9] Anthony_Woods [Rank 9] Habib_Merkel [Rank 9] Garry_Brian"

我需要计算它(根据我的示例):

$rank10 = 1;
$rank9 = 3;

如果我没记错的话,可以通过preg_replace完成,但是我还没有研究过。

另一个例子:

$string = "[Rank 10] Carlos_Regenz [Rank 10] Anthony_Woods [Rank 10] Habib_Merkel [Rank 9] Garry_Brian"

输出:

$rank10 = 3;
$rank9 = 1;

2 个答案:

答案 0 :(得分:0)

在您编辑帖子之前,我已经看到了该帖子,因此可以用新行将字符串分隔开,对吗?

如果方括号(])不是有效的名称,则可以在此处拆分,然后在单词“ Rank”上再次拆分,然后修剪剩余的字符串以获取数字。然后使用如下检查创建一个数组:

if (isset(array[RANK_NUMBER])){
    array[RANK_NUMBER] += 1;
}else{
    array[RANK_NUMBER] = 1;
}

使用正则表达式可以使代码更短,但是比进行拆分和修剪要慢

答案 1 :(得分:0)

在右括号之前查找任何数字序列

preg_match_all('/\d+\]/', $input, $ranks);

然后计算发现的每个数字的数量。

$ranks = array_count_values(reset($ranks));