【发布时间】:2014-10-20 21:06:56
【问题描述】:
我正在尝试使用sizeof 或count 来返回数组中的事物数量,但是每当我使用$rank_ids2 来计数而不是手动输入1, 2, 3, 4, 67, 7 时,它只会返回1 ,但是当我直接在数组中键入它们时,它计数为 6 就好了!
$ranksAllowed = '|1|2|3|4|67|7|';
$rank_ids = explode('|', trim("|".$ranksAllowed."|", '|'));
$rank_ids2 = implode(", ", $rank_ids);
$arrayofallowed = array($rank_ids2);
echo sizeof($arrayofallowed);
$rank_ids 只是将 |1|2|.. 格式转换为 1, 2
【问题讨论】:
-
implode返回一个字符串;它将数组转换为字符串。因此,如果您将该字符串放入一个新数组中,就像您所做的那样,您最终会得到一个包含一个元素的数组。 -
如果您想计算有多少“等级”,请将您的计数移至 implode 和
count($rank_ids)上方,同时它仍然是一个数组。您还可以使用 substr_count 来计算字符串中存在多少,并加 1。编辑:我想既然您将字符串分配给一个新变量,您可以只使用count($rank_ids)而无需将其移至内爆上方。跨度>
标签: php arrays explode implode