首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >hash::combine数组

hash::combine数组
EN

Stack Overflow用户
提问于 2016-06-03 21:24:09
回答 2查看 145关注 0票数 0

我有一个来自sql查询的数组:

代码语言:javascript
复制
   [0] => Array
    (
        [T1] => Array
            (
                [First] => A
                [Second] => Apples
                [LastChild] => F
            )

        [0] => Array
            (
                [LastChildNb] => 23
            )

    )

我希望得到这样的结果:

代码语言:javascript
复制
   [0] => Array
    (
        [0] => Array
            (
                [First] => A
                [Second] => Apples
                [LastChild] => F
                [LastChildNb] => 23
            )

    )

我该怎么做呢?我想我应该使用"hash::combine",但是代码应该是什么呢?

EN

回答 2

Stack Overflow用户

发布于 2016-06-04 02:10:00

你可以这样做,上面的数组是$arr:

代码语言:javascript
复制
$arr = array_reduce($arr, function(&$arr, $v) {
                        return array_merge($arr, (array) $v);
                    }, array());
票数 0
EN

Stack Overflow用户

发布于 2016-06-09 17:05:50

你可以做到

代码语言:javascript
复制
array_merge($arr[0]['T1'], $arr[0][0])

其中$arr的定义如下:

代码语言:javascript
复制
$arr = [0 => Array
(
    'T1' => Array
        (
            'First' => 'A',
            'Second' => 'Apples',
            'LastChild' => 'F'
        ),
    0 => Array
        (
            'LastChildNb' => 23
        )

)];

对于$arr中的多个记录,您可以简单地循环所有记录并手动执行此合并。

然而,假设你是通过一个find()方法得到数组的,我建议你考虑在条件的“字段”中使用T1__LastChildNb作为别名。简单地说,如果你有如下这样的发现:

代码语言:javascript
复制
$this->T1->find('all', ['fields' => 'T1.*, (SOME SUBQUERY) AS LastChildNb']);

然后将其修改为

代码语言:javascript
复制
$this->T1->find('all', ['fields' => 'T1.*, (SOME SUBQUERY) AS T1__LastChildNb']);

这可能是您正在寻找的,因为它将直接返回所需的数组(在2.6上进行了测试)。

如果您对更多信息感兴趣,请让我知道。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37615619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档