二维阵列到1维阵列转换

时间:2016-12-20 07:52:42

标签: php yii2

用我的代码:

$sql = "SELECT number.phone_number FROM number, ordered_number WHERE ordered_number.number_id=number.id AND ordered_number.order_id=$id";
    $connection = \Yii::$app->getDb();
    $command = $connection->createCommand($sql);
    $numery = $command->queryAll();

我得到的数组看起来像这样:

array (size=3)
  0 => 
    array (size=1)
      'phone_number' => string '546732354' (length=9)
  1 => 
    array (size=1)
      'phone_number' => string '565345456' (length=9)
  2 => 
    array (size=1)
      'phone_number' => string '456557546' (length=9)

我想得到简单的数组,其中第一个元素只是数字(这里是字符串),没有名称'phone_number'和主数组中的其他1元素数组。当我尝试在这个数组上做foreach时,它告诉我我使用“非法偏移类型”。我发现这意味着我正在使用对象而不是数组,但这是一个数组,而不是一个对象,我不知道该怎么做。

2 个答案:

答案 0 :(得分:3)

更简单(但对于php5.5和php7):

$numery = array_column(
    $command->queryAll(),
    'phone_number'
);

答案 1 :(得分:1)

使用以下循环获得所需结果

$numery = $command->queryAll();
$number_arr = array();
foreach($numery as $number)
{
   array_push($number_arr,$number['phone_number']);
}
print_r($number_arr);