Benim diziyi bozarak foreach döngüsü?

2 Cevap php

Explanation

Ben farklı araştırma ilgi alanlarına sahip kişilerin bir kategorize görünümü oluşturulur üzerinde iterated çok boyutlu bir dizi var. Ana dizi bu gibi bir şey:

Array
(
    ...
    ['Cell Biology']      => Array(4 elements)
    ['Molecular']         => Array(6 elements)
    ['Biology Education'] => Array(14 elements)
    ['Plant Biology']     => Array(19 elements)  <--- Last element in array
)

Ben tüm dizi sağlam ve doğru yapılandırılmış olduğunu biliyoruz. Bu dizi içinde olan tek bilgi bu yüzden gibi, bir kullanıcı kimliği:

Array ('Plant Biology') 19 elements
(
    [0] => 737
    [1] => 742
    [2] => 748
    ...
)

Benim sorunum ben bir foreach döngü ana diziyi çalıştırdıktan sonra son 'sub-array' berbat olur olmasıdır. Berbat derken ne görmek yerine hakkında benziyor demek:

String (13 characters) 'Plant Biology'

Bu bozulduğunda dizi ile döngü içinde hiç bir şey yapmadan olduğunu.

Bu olabilir ne herhangi bir ipucu?

PHP Code

  // ---> Array is OK here
  echo "<h2>Research divided</h2>";
  // Loop areas and list them in 2 columns
  foreach($research['areas'] as $area => $areaArray) {
      // ---> Here it is already corrupted
      $count = count($areaArray);
      if($count > 0) {
          echo "<h3>$area</h3><hr/>";
          echo "<ul>";
          // Loop users within areas, divided up in 2 columns
          for($i=0 ; $i<$count ; $i++) {
              $uid = $areaArray[$i];
              echo "<li>$uid</li>";
          }
          echo "</ul>";
      }
  }

2 Cevap

Başka bir yerde komut farklı işlevde kullanılıyor $ alan veya $ areaArray mısınız? Eğer değişkenler yanlışlıkla üzerine yazılmasını önlemek için $ loop_area ve $ loop_areaArray onları yeniden adlandırırsanız Wht olur?

Bu oluşabilir bir hata gibi görünüyor eğer değeri için aynı değişken adını kullanarak bir referans ile daha önce dizi üzerinden size döngü.

Kod $ areaArray önceki bir referans ile bir foreach kullanıldığında yani eğer bozuk veri olabilir.

Lütfen foreach hem de değişkenler önceden kullanılmış veya döngü önce onları yoketmek değil emin olun.

Çıkış:

http://bugs.php.net/29992

Bu tür sorunları hakkında daha fazla bilgi için.