8
votes

Incrément une valeur à l'intérieur de PHP pourcheach?

est-il possible d'incrémenter une variable PHP à l'intérieur d'un forach? Je sais comment boucle en déclarant dehors.

Je cherche quelque chose comme la syntaxe ci-dessous xxx


2 commentaires

Ce qui précède n'est pas valide. $ I ++ n'est pas autorisé dans le foreach . L'avez-vous mélangé avec pour ($ i = 0; $ i <10; $ i ++) ?


s, je cherche quelque chose de similaire. Il peut me sauver deux lignes de codes


9 Réponses :


5
votes
foreach ($some as $somekey=>$someval)
{
     $i++;


}

0 commentaires

0
votes

Y a-t-il une raison pour ne pas utiliser xxx

?


0 commentaires

0
votes
foreach ($some as $somekey=>$someval)
{
    $i++;
}

0 commentaires

41
votes

Non, vous devrez utiliser

$i = 0;
foreach ($some as $somekey=>$someval) {
    //xyz
    $i++;
}


1 commentaires

Méfiez-vous si vous avez une instruction Continuer dans la boucle (qui pourrait sauter l'incrément) - dans ce cas, il peut être préférable de commencer par $ i = -1 et incrémenter avant // xyz .



0
votes
foreach ($some as $somekey=>$someval)
{
 $i++;
}
i is just a variable. Even though it's used to iterate over whatever item you're using, it can still be modified like any other. 

0 commentaires

0
votes

Cela fera le tour! N'oubliez pas que vous devrez définir $ i = 0 avant la boucle de Foreach si vous souhaitez commencer à compter / incrémenter de 0.

$i = 0;
foreach ($some as $somekey=>$someval) {
    $i++;
}


0 commentaires

1
votes
$dataArray = array();
$i = 0;
foreach($_POST as $key => $data) {
    if (!empty($data['features'])) {
        $dataArray[$i]['feature'] = $data['features'];
        $dataArray[$i]['top_id'] = $data['top_id'];
        $dataArray[$i]['pro_id'] = $data['pro_id'];
    }
    $i++;
}

0 commentaires

1
votes

Je sais que c'est un vieil ici, mais ce sont mes pensées. XXX PRE>

- MISE À JOUR STROND> - P>

$some = ['foo', 'bar'];
$someCounted = count($some);

for($i = 0; $i < $someCounted; $i++){
 echo $some[$i];
}


1 commentaires

L'utilisation de comptage à l'intérieur pour exécutera la fonction de comptage chaque boucle, n'utilisez pas comme ça, écrivez avant la variable et l'utiliser plus tard.



2
votes

Une manière paresseuse de faire est la suivante:

$i=1;
foreach( $rows as $row){
    $i+=1;
}
unset($i);


0 commentaires