我有一个来自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”,但代码是什么?
答案 0 :(得分:0)
你可以这样做,$ arr就是你上面的数组:
$arr = array_reduce($arr, function(&$arr, $v) {
return array_merge($arr, (array) $v);
}, array());
答案 1 :(得分:0)
你可以做到
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上测试)。
如果您对更多信息感兴趣,请与我们联系。