PHP我要用count统计文本里的单词数的总数

比如:$parrten="/[a-zA-Z]+/";$str="中英文chineseenglish混合thisisatest这是一个测试";preg_match_all(... 比如:
$parrten = "/[a-zA-Z]+/";

$str ="中英文chinese english混合 this is a test这是一个测试";

preg_match_all($parrten,$str,$arr);

echo count($arr);

为什么结果得出是1,我要的结果是6.
展开
 我来答
yu641150278
2013-11-13 · TA获得超过1069个赞
知道小有建树答主
回答量:637
采纳率:100%
帮助的人:300万
展开全部

preg_match_all得到的是一个二维数组,你可以去看一下php手册,他还有一个可选参数,默认时PREG_PATTERN_ORDER,这样得到的二维数组$arr,第一个是匹配的字符串,第二个是匹配第一个括号的字符串,后面依次类推

还可以设置为PREG_SET_ORDER,这样他得到的二维数组是,第一个是匹配的第一个字符串,第二个是匹配的第二个字符串,以此类推

所以你这题不加后面那个参数的话就是打印count($arr[0]),或者加参数PREG_SET_ORDER,打印出来就是6了。

$parrten = "/[a-zA-Z]+/";
$str ="中英文chinese english混合 this is a test这是一个测试";
preg_match_all($parrten,$str,$arr,PREG_SET_ORDER);
print_r($arr);
echo  count($arr);
势芷蓝3S
2013-11-13 · TA获得超过2389个赞
知道小有建树答主
回答量:1122
采纳率:0%
帮助的人:380万
展开全部
$arr是数组,可以输出其各项查看结果,第一项是字数。
有个函数叫str_word_count或者mb_strlen是统计字数用的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阳光上的桥
2013-11-13 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65816
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
这样才对:
echo count($arr[0]);

因为在preg_match_all执行完毕,$arr[0]是一个数组,里面每个元素是每次匹配的内容。

如果的正则表达式里面有(),那么$arr[1]就是第一对括号所匹配的内容,$arr[2]就是第二个,……。

因为你本例子正则表达式没有括号,所以只有$arr[0]一个元素,没有$arr[1]等。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yukon12345
2013-11-13 · TA获得超过1713个赞
知道大有可为答主
回答量:1827
采纳率:66%
帮助的人:1012万
展开全部
最后一句,echo count($arr[0]);
因为 preg_match_all 返回的数组是一个包含了所有匹配的二维数组
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
卧龙不悔
2013-11-13 · TA获得超过302个赞
知道小有建树答主
回答量:199
采纳率:0%
帮助的人:59.2万
展开全部
你可以用var_dump函数来查看一下那个数组arr,结果是对的,不过要这样写:echo count($arr[0]);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式