foreach és loop PHP

szavazat
1

am dolgozik php hurkok és azon kapom magam, hogy írnom kell egy beágyazott hurok fúróval, amikor megpróbálom kombinálni foreach és hurok azt kapjuk, hogy a nem várt eredmény Íme a kód

       foreach ($district_ward as $key => $value) {
           $ward_ids = array_keys($district_ward[$key]);
           echo $key;
           for ($x = 0; $x < count($ward_ids)-1; $x++) {
               $district_village[$key]= array_merge($value[$ward_ids[$x]], $value[$ward_ids[$x+1]]);
           }               
        }

Ez ad nekem a

347

de amikor kiírja $ kulcs a for ciklus, azaz a

        foreach ($district_ward as $key => $value) {
           $ward_ids = array_keys($district_ward[$key]);
           for ($x = 0; $x < count($ward_ids)-1; $x++) {
   echo $key;
               $district_village[$key]= array_merge($value[$ward_ids[$x]], $value[$ward_ids[$x+1]]);
           }
        }

én kap ez

3
A kérdést 12/06/2011 13:09
a forrás felhasználó
Más nyelveken...                            


3 válasz

szavazat
2

Csak megyek kitalálni, hogy a 2. és 3. tömb csak egy bejegyzés hosszú. A feltétel a hurok meghatározza $x < count($ward_ids) - 1. Ha a tömb csak egy bejegyzést, egy - 1 teszi loop 0 alkalommal. Más szóval, a belső ciklust nem hajtja végre egyáltalán.

Válaszolt 12/06/2011 13:15
a forrás felhasználó

szavazat
0

Ön nyomtatására egy html oldalon? Vannak a kulcsok 3., 4. és 7.? Úgy tűnik, mint 347 ha volt visszhangos egy html oldalt. Próbáld ki

echo "$key<br />\n"; 

vagy akár

echo "<pre>".print_r($district_ward)."</pre>";

a ciklus előtt, hogy mi a tömb néz ki.

Válaszolt 12/06/2011 13:30
a forrás felhasználó

szavazat
0
 foreach ($district_ward as $key => $value) {
       $ward_ids = array_keys($district_ward[$key]);
       for ($x = 0; $x < count($ward_ids); $x++) {
           echo $key;
           $district_village[$key]= array_merge($value[$ward_ids[$x]], $value[$ward_ids[$x+1]]);
       }
    }

Amennyiben ezt a trükköt, mert akkor kezdődik 0-ig az összeg $ ward_ids Tegyük fel, hogy $ ward_ids már 1 bejegyzés, akkor volna hurkolt 0 -tól 0, így nincs hurkok egyáltalán, és mondjuk volt 102 bejegyzés, akkor volna hurkolt 1-101, így 102 végzet kezdete óta 0.

Válaszolt 12/06/2011 22:03
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more