it-swarm-id.com

PHP, lanjutkan; pada foreach () {foreach () {

Apakah ada cara untuk melanjutkan foreach eksternal jika foreach internal memenuhi beberapa pernyataan?

Sebagai contoh

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

Coba ini, harus bekerja:

continue 2;

Dari manual PHP: 

Lanjutkan menerima argumen numerik opsional yang memberitahukan berapa banyak level loop yang harus dilewati hingga akhir.

di sini dalam contoh (tepat 2) dijelaskan kode yang Anda butuhkan

69
user973254

Coba ini: continue 2; Menurut manual:

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

Ada dua solusi yang tersedia untuk situasi ini, baik menggunakan break atau continue 2 . Perhatikan bahwa ketika menggunakan break untuk keluar dari loop internal kode apa pun setelah loop batin masih akan dieksekusi. 

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

Solusi lain adalah dengan menggunakan continue diikuti dengan berapa tingkat kembali untuk melanjutkan.

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

Coba break bukannya continue.

Anda dapat mengikuti break dengan integer, memberikan jumlah loop untuk keluar.

2
TRiG

Ini akan berlanjut ke level di atas (jadi foreach luar)

 continue 2
2
JNDPNT

anda harus menggunakan break alih-alih melanjutkan, jika saya mengerti Anda

Di sini saya menulis penjelasan tentang masalah ini: Apa yang dimaksud dengan angka setelah "istirahat" atau "melanjutkan" di PHP?

0