php подсчитывает количество строк после разнесения


Вот мой код

<?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

Есть идеи, пожалуйста?

Спасибо.

Author: user2203703, 2013-05-12

4 answers

<?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, а не с единицы. Поэтому при использовании чего-либо еще, кроме count, вы будете постоянно получать на 1 меньше, чем ожидали (если только вы не измените массив перед подсчетом)

 13
Author: Daryl Gill, 2017-12-18 07:47:38

Если вам просто нужно общее число, вы можете сделать это:

$tags = explode('|' , $string);
$num_tags = count($tags);
 6
Author: Karl M.W., 2013-05-11 23:41:06
<?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++;
}

?>
 1
Author: Shanu, 2016-12-01 06:52:55

Программисты всегда считают от 0, это хорошая практика, но если вам действительно нужно это сделать, просто объявите переменную $i как 1 перед циклом fooreach

 0
Author: techpixel, 2013-05-11 23:42:27