加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 15:58:32 所属栏目:PHP教程 来源:网络整理
导读:我正在使用yii2 php框架,我有这个查询访问db中的所有用户: $allUsersQuery = new Query;$allUsersQuery-select(['_id'])-from('user')-where([ 'parent' = new MongoId($session['company_owner']) ]);$allUsers = $allUsersQuery-all(); 当我var_dump $al
我正在使用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');

我该如何工作?

解决方法

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

function array_flatten($allUsers) { 
    if (!is_array($allUsers)) { return FALSE; } 

    $allUsersResult = array(); 
    foreach ($allUsers as $key => $value) { 
        if (!is_array($value)) { return FALSE; } 

        $allUsersResult[] = $value["_id"]->{'$id'};
    } 
    return $allUsersResult; 
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读