web-dev-qa-db-fra.com

PHP, continuez; sur foreach () {foreach () {

Existe-t-il un moyen de continuer à faire de la communication externe au cas où la communication interne rencontrerait une déclaration?

Par exemple

foreach($c as $v)
{
    foreach($v as $j)
    {
        if($j = 1)
        {
            continue; // But not the internal foreach. the external;
        }
    }
}
27
Merianos Nikos

Essayez ceci, devrait fonctionner:

continue 2;

À partir du PHP Manual: 

Continuer accepte un argument numérique facultatif lui indiquant le nombre de niveaux de boucles englobantes à ignorer jusqu'à la fin.

ici dans les exemples (exactement le 2ème) décrit le code dont vous avez besoin

69
user973254

Essayez ceci: continue 2; Selon le manuel:

continue accepts an optional numeric argument which tells it how many levels of enclosing loops it should skip to the end of. 
10
matino

Deux solutions sont disponibles pour cette situation, utilisez break ou continue 2 . Notez que lorsqu’on utilise break pour sortir de la boucle interne, tout code subséquent sera exécuté après la boucle interne. 

foreach($c as $v)
{
    foreach($v as $j)
    {
        if($j = 1)
        {
            break;
        }
    }
    echo "This line will be printed";
}

L’autre solution consiste à utiliser continue suivi du nombre de niveaux précédents.

foreach($c as $v)
{
    foreach($v as $j)
    {
        if($j = 1)
        {
            continue 2;
        }
    }
    // This code will not be reached.
}
6
Marcus
<?php
foreach($c as $v)
{
    foreach($v as $j)
    {
        if($j = 1)
        {
            continue 2; // note the number 2
        }
    }
}
?>

RTM

3
megaflop

Essayez break au lieu de continue.

Vous pouvez suivre break avec un entier, en indiquant le nombre de boucles dont vous souhaitez sortir.

2
TRiG

Cela continuera à des niveaux supérieurs (donc le foreach externe)

 continue 2
2
JNDPNT

vous devez utiliser break au lieu de continuer, si je vous comprends bien

Ici, j'ai écrit une explication à ce sujet: Qu'entend-on par un chiffre après "break" ou "continue" en PHP?

0
Your Common Sense