将多维数组转换为单个数组

时间:2015-10-15 03:53:00

标签: php arrays multidimensional-array yii2

我正在使用yii2 php框架,我在访问db:

中的所有用户时都有此查询
$allUsersQuery = new Query;
$allUsersQuery->select(['_id'])->from('user')->where([ 'parent' => new \MongoId($session['company_owner']) ]);
$allUsers = $allUsersQuery->all(); 

当我var_dump $allUsers数组时,它会给我输出结果:

array (size=5)
  0 => 
    array (size=1)
      '_id' => 
        object(MongoId)[147]
          public '$id' => string '55d5a227650fc90c35000044' (length=24)
  1 => 
    array (size=1)
      '_id' => 
        object(MongoId)[148]
          public '$id' => string '55d5a22a650fc90c35000047' (length=24)
  2 => 
    array (size=1)
      '_id' => 
        object(MongoId)[149]
          public '$id' => string '55d5a22a650fc90c3500004a' (length=24)
  3 => 
    array (size=1)
      '_id' => 
        object(MongoId)[150]
          public '$id' => string '55d5a22b650fc90c3500004d' (length=24)
  4 => 
    array (size=1)
      '_id' => 
        object(MongoId)[151]
          public '$id' => string '55d5a22b650fc90c35000050' (length=24)

它是多维数组。我搜索并尝试了几种解决方案,但他们只给我这个结果:

array (size=1)
  '_id' => 
    object(MongoId)[147]
      public '$id' => string '55d5a227650fc90c35000044' (length=24)

以下是我尝试但未能解决的几个解决方案:
1。

function array_flatten($allUsers) { 
    if (!is_array($allUsers)) { 
        return FALSE; 
    } 
    $allUsersResult = array(); 
    foreach ($allUsers as $key => $value) { 
        if (is_array($value)) { 
            $allUsersResult = array_merge($allUsersResult, array_flatten($value)); 
        } 
        else { 
          $allUsersResult[$key] = $value; 
        } 
    } 
    return $allUsersResult; 
} 

2

array_reduce($allUsers, 'array_merge', array());

3

$allUsers = $allUsers[0];

我的预期输出是:

Array('value1', 'value2', 'value3');

如何使这项工作?

2 个答案:

答案 0 :(得分:1)

您可以简单地遍历数组并收集此数据 我刚刚编辑了你的功能:

int id=1,price=123435;
char name[]="mercedez";
char consulta[1024];

sprintf(consulta,"insert into cars values('%d','%s','%d')",id,name,price);
if(mysql_query(con,consulta)==0)
   fprintf(stdout,"datos insertados con exito\n");

答案 1 :(得分:0)

更简单的方法就可以像这样转换它。使用arrayHelper类并以这种方式获取想要获取的列

$array = [
    ['id' => '123', 'data' => 'abc'],
    ['id' => '345', 'data' => 'def'],
];
$result = ArrayHelper::getColumn($array, 'id');


});
相关问题