Here is my code
<?php
$string = 'a|b|c|d|e|f';
$tags = explode('|' , $string);
foreach($tags as $i =>$key) {
$i >0;
echo $i.' '.$key .'</br>';
}
?>
the output is
0 a
1 b
2 c
3 d
4 e
5 f
What i'm try to count the number of strings after i exploded | (it should be 6 for my example) also i need my $i to start from 1 not 0
Any idea please ?
Thank you.
<?php
$string = 'a|b|c|d|e|f';
$tags = explode('|' , $string);
foreach($tags as $i =>$key) {
echo $i.' '.$key .'</br>';
}
?>
Try using:
echo count($tags); // Output of 6
Arrays start with a key of 0, not one. So when using anything else apart from count, you will constantly get 1 less than your expected (unless you modify the array prior to counting)
If you just need the total number, you could do this:
$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++;
}
?>
programmers always count from 0, it's good practice, but if you really need to do this simply declare the $i variable as 1 before the fooreach loop
来源:https://stackoverflow.com/questions/16502748/php-count-the-number-of-strings-after-exploded