Php 无法显示数组元素

Php 无法显示数组元素,php,arrays,loops,for-loop,foreach,Php,Arrays,Loops,For Loop,Foreach,我想为viber机器人创建带有车库的按钮。我有一系列的汽车品牌 global $wpdb; $makes = $wpdb->prepare("SELECT meta_value FROM $wpdb->postmeta WHERE meta_key = 'make' ",ARRAY_A); $makes = $wpdb->get_col( $makes ); $makes = array_un

我想为viber机器人创建带有车库的按钮。我有一系列的汽车品牌

                                 global $wpdb;
$makes = $wpdb->prepare("SELECT meta_value FROM $wpdb->postmeta WHERE meta_key = 'make' ",ARRAY_A);
$makes = $wpdb->get_col( $makes );
$makes = array_unique($makes);
            $buttons = [];
                for ($i = 0; $i < count($makes); $i++)  {
                $buttons[] =
                    (new \Viber\Api\Keyboard\Button())
                        ->setColumns(1)
                        ->setActionType('reply')
                        ->setActionBody($i)
                        ->setText($i);
}
尽管第一和第二个元素正在显示

所有元素都显示在这个代码中

foreach ($makes as $make)  {
echo $make; echo ' ';
}
当我试图用foreach显示按钮时,它不起作用(我的第一个问题)


How ca

请不要将调试信息作为图像共享-将其作为文本共享。对于数组,最好的选择是
var\u export
,因为可以将其直接复制到编辑器中以重新创建相同的数组。请共享
$makes
var\u export
。旁注:您可以将
DISTINCT
添加到查询中,以避免事后调用
array\u unique
。我编写了
DISTINCT
并删除了
array\u unique
。这很有帮助,非常感谢。你能不使用
array\u unique
DISTINCT
来编写我的代码吗?这样我就可以把它作为答案了?嗯,这样做不会影响你的进一步输出。理论上,这两种方法应该产生相同的数组。@El_Vanja IDK为什么,但它工作得很好
foreach ($makes as $make)  {
echo $make; echo ' ';
}