我正在使用Wordpress中的Woocommerce开展一个项目。我尝试获取特定类别的所有产品,将它们保存在一个数组中,然后用它们做我的事情。但是,即使循环工作并打印所有项目,当我在数组上推送数据时,它只保留最后一个。
<ListView
android:id="@+id/left_drawer"
android:layout_width="235dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#ffffff"
android:choiceMode="singleChoice"
android:divider="#d2d1d1"
android:listSelector="@drawable/list_selector_drawer"
android:dividerHeight="1dp"/>
正如你所看到的,我选择的是这个:
$args = array( 'post_type' => 'product', 'posts_per_page' => 100, 'product_cat' => 'additional-number' );
$loop = new WP_Query( $args );
echo '<select class="form-control">';
echo '<option>Select a country</option>';
while ( $loop->have_posts() ) : $loop->the_post();
global $product;
$countries = array();
$countries[] = $product->id;
echo '<option value="' . $product->id . '">' . $product->post->post_title . '</option>';
endwhile;
echo '</select>';
wp_reset_query();
print_r($countries);
但是<select class="form-control">
<option>Select a country</option>
<option value="7818">England</option>
<option value="7814">Germany</option>
</select>
的输出就是这个:
print_r
知道我做错了吗?
答案 0 :(得分:3)
请添加$ countries = array();在while循环之前
<?php
$args = array( 'post_type' => 'product', 'posts_per_page' => 100, 'product_cat' => 'additional-number' );
$loop = new WP_Query( $args );
$countries = array();
echo '<select class="form-control">';
echo '<option>Select a country</option>';
while ( $loop->have_posts() ) : $loop->the_post();
global $product;
$countries[] = $product->id;
echo '<option value="' . $product->id . '">' . $product->post->post_title . '</option>';
endwhile;
echo '</select>';
wp_reset_query();
print_r($countries);
?>
答案 1 :(得分:2)
您正在初始化循环中的数组变量,以便在每次迭代中创建一个新的空数组。
$countries = array();
在 while
循环之前属于。