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

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

Спасибо.

4 8

4 ответа:

<?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 меньше, чем ожидалось (если вы не измените массив до подсчета)

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

$tags = explode('|' , $string);
$num_tags = count($tags);
<?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++;
}

?>

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