PHP, nasıl bir dizide eksik tuşları düzeltebilirsiniz?

4 Cevap php

4 Cevap

$foo = array_values($foo); sizin için bir dizi-numaralı yeniden olacak

Bunun yerine döngüler için kullanarak size foreach döngüleri kullanmak gerekir gibi geliyor. Onları numaralandırılmadan beri Anlaşılan yine endeksleri umurumda değil.

Bu döngü:

for ($i = 0; $i < $loopSize; $i++)
{
process($myArray[$i]);
}

dönüşür

foreach($myArray as $key=> $value)
{
    process($value);
    /** or process($myArray[$key]); */
}

or even more simply


foreach($myArray as $value)
{
    process($value);
}

Ben yerine foreach için kullanarak denedim birkaç durumda, yakında pişman.

Gerçekten her zaman önlenebilir, hatta neredeyse unutmadan, anahtarını foreach kullanın ama değerleri göz ardı ederek kullanabilirsiniz onun için yerine foreach, ama tuşları herhangi bir boşluk kaçınarak ve otomatik sınırları uzunluk / dk olmadan halledilir / max fonksiyonları ya da bir şey.

ex.

foreach($myArray as $key=>$val)
{
     myArray[$key] = myFunction(myArray[$key]);
}

Özellikle paralel diziler bu yararlı buldum.

$a = getA(); $b = getB();
foreach($a as $key=>val)
{
    $sql = "INSERT INTO table (field1, field2) VALUES ($a[$key], $b[$key])";
}

Ben şu anda yanımda kitap yok, ama böylece başlamak için benzersiz bir dizi bina, bu dizide zaten ise değerini göz ardı dizi oluştururken bir seçenek var php değil mi?