我有一个wordpress foreach循环,它获取了类别名称。
$i = 0;
foreach($catnamea as $legname ) {
$i++;
echo $legname[$i].'<br>';
}
如果我去$ legname [0] - 它会给我一个类别名称,并且随着我的数字,它会列出所有其他名称。但是如果没有我必须输入另一个数字,就像这样发生,很多我想让它在每个项目的变量$ 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 :(得分:0)
我认为您的问题是您将数组变量($catnamea
)与循环变量($legname
)混淆。
尝试这样的事情:
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);
。在循环中不需要增加变量。