我有一个来自sql查询的数组:
[0] => Array
(
[T1] => Array
(
[First] => A
[Second] => Apples
[LastChild] => F
)
[0] => Array
(
[LastChildNb] => 23
)
)我希望得到这样的结果:
[0] => Array
(
[0] => Array
(
[First] => A
[Second] => Apples
[LastChild] => F
[LastChildNb] => 23
)
)我该怎么做呢?我想我应该使用"hash::combine",但是代码应该是什么呢?
发布于 2016-06-04 02:10:00
你可以这样做,上面的数组是$arr:
$arr = array_reduce($arr, function(&$arr, $v) {
return array_merge($arr, (array) $v);
}, array());发布于 2016-06-09 17:05:50
你可以做到
array_merge($arr[0]['T1'], $arr[0][0])其中$arr的定义如下:
$arr = [0 => Array
(
'T1' => Array
(
'First' => 'A',
'Second' => 'Apples',
'LastChild' => 'F'
),
0 => Array
(
'LastChildNb' => 23
)
)];对于$arr中的多个记录,您可以简单地循环所有记录并手动执行此合并。
然而,假设你是通过一个find()方法得到数组的,我建议你考虑在条件的“字段”中使用T1__LastChildNb作为别名。简单地说,如果你有如下这样的发现:
$this->T1->find('all', ['fields' => 'T1.*, (SOME SUBQUERY) AS LastChildNb']);然后将其修改为
$this->T1->find('all', ['fields' => 'T1.*, (SOME SUBQUERY) AS T1__LastChildNb']);这可能是您正在寻找的,因为它将直接返回所需的数组(在2.6上进行了测试)。
如果您对更多信息感兴趣,请让我知道。
https://stackoverflow.com/questions/37615619
复制相似问题