11

这是我的代码

<?php

$string = 'a|b|c|d|e|f';

$tags = explode('|' , $string);


foreach($tags as $i =>$key) {
$i >0;
    echo $i.' '.$key .'</br>';

}

?>

输出是

0 a
1 b
2 c
3 d
4 e
5 f

我爆炸后我试图计算的字符串数量| (我的例子应该是 6)我也需要我的 $i 从 1 而不是 0 开始

请问有什么想法吗?

谢谢你。

4

5 回答 5

20
<?php

$string = 'a|b|c|d|e|f';

$tags = explode('|' , $string);


foreach($tags as $i =>$key) {

    echo $i.' '.$key .'</br>';

}

?>

尝试使用:

echo count($tags); // Output of 6

数组以键 0 开头,而不是 1。因此,当使用除计数之外的任何其他内容时,您将不断得到比预期少 1 的结果(除非您在计数之前修改数组)

于 2013-05-11T23:41:20.440 回答
9

如果你只需要总数,你可以这样做:

$tags = explode('|' , $string);
$num_tags = count($tags);
于 2013-05-11T23:41:06.517 回答
2
<?php

$string = 'a|b|c|d|e|f';

$tags = explode('|' , $string);

$count =count($tags);
  echo 'Count is: '.$count .'</br>';
$i = 1 ;
foreach($tags as $key) {

    echo $i.' '.$key .'</br>';
$i++;
}

?>
于 2016-12-01T06:52:55.950 回答
1
<?php

$string = 'a|b|c|d|e|f';
$array= explode('|' , $string);
 for($i = 0;$i<count($array);$i++){
  echo $i. $array[$i]."\n";
}

?>
于 2020-02-05T06:29:25.880 回答
0

程序员总是从 0 开始计数,这是一个很好的做法,但如果你真的需要这样做,只需在 fooreach 循环之前将 $i 变量声明为 1

于 2013-05-11T23:42:27.627 回答