2013-10-09 68 views
0

我有一個wordpress foreach循環,它獲取類別名稱。數組中的下一項 - foreach循環

$i = 0; 
foreach($catnamea as $legname) { 
$i++; 
echo $legname[$i].'<br>'; 
} 

,如果我去$ legname [0] - 它會給我一個類別名稱,並作爲我了numeber它列出了所有其他名稱。但是,像這樣的事情發生時,我不得不輸入另一個數字,pertty很多,我希望它在每個項目的變量$ i上添加一個數字。

以下是完整的代碼,所以你可以看到什麼在

var pieData = [ 
          <?php 
           $user_id = get_query_var('author'); 

           $rand = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'); 
           //get all posts from author 
           $args = array(
            'post_type' => 'post', 
            'author'=> $queried_object->ID 
           ); 

           $the_query = new WP_Query($args); 

           if ($the_query->have_posts()) : 

            while ($the_query->have_posts()) : $the_query->the_post(); 

             //put categories in array 
             $cat = get_the_category(get_the_ID()); 
             $terms[] = $cat[0]->term_id; 
             $catnames[] = $cat[0]->cat_name; 

            endwhile; 

            wp_reset_query(); 
           endif; 

           //count matching categories (array vals) 
           $countVal = array_count_values($terms); 
           $colors = array(); 
           $catnames[] = array(); 
           foreach($countVal as $count){ 

            $color = '#'.$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)]; 

            echo " { 
              value: ".$count.", 
              color:'".$color."' 
              },"; 
              $colors[] = $color; 
              $catnamea[] = $catnames; 


           } 

          ?> 
          ] 

          var myPie = new Chart(document.getElementById("piec").getContext("2d")).Pie(pieData); 
         </script> 
         <?php 
         foreach($colors as $scolor) { 
          echo '<div style="background:'.$scolor.';height:5px; width:5px;float:left"></div>'; 
         } 
         $i = 0; 
         foreach($catnamea as $legname) { 
         $i++; 
          echo $legname[$i].'<br>'; 
         } ?> 
+0

你想沒有'$ i ++'呢? – DontVoteMeDown

+0

目前$ i ++是越野車,不能正常工作,不止一次拉同一結果 – Zackskeeter

+0

現在這很奇怪,考慮到''我可能永遠不會重複。你檢查過你的陣列了嗎? – DontVoteMeDown

回答

0

去我覺得你的問題是你混淆了循環變量($legname)數組變量($catnamea)。

嘗試這樣:

foreach($catnamea as $legname) { 
    echo $legname.'<br>'; 
} 

,或者,如果你真的需要索引,你可以不喜歡

foreach($catnamea as $index => $legname) { 
    echo $catnamea[$index].'<br>'; 
} 

儘管在你的例子,我看不到優勢。你可以使用$i,就像你在這個例子中做的一樣,但是這會使得假設數組鍵(即它們從1開始,每次增加1),這可能總是不正確。

喜歡的東西:

if (!empty($catnamea)) { 
    echo implode('<br>', $catnamea) . '<br>'; 
} 

也應該做你以後。

如果您想要數組中的元素總數,則可以使用count($catnamea);。在循環中不需要增加變量。