无法合并cakephp2中find(';all';)中的嵌套数组数据
我尝试将无法合并cakephp2中find(';all';)中的嵌套数组数据,php,arrays,cakephp-2.0,Php,Arrays,Cakephp 2.0,我尝试将MyData中数组“c”和“a”中的数据与以下代码合并,但结果仍然损坏 我的代码有问题吗?还是我在合并数组时犯了一个简单的错误?我正在做各种各样的事情来解决这个问题,但找不到任何有效的解决办法。一些例子或提示将是伟大的 要将[my_test]和[my_date]合并到[MyData]中 Array ( [0] => Array ( [MyData] => Array (
MyData
中数组“c”和“a”中的数据与以下代码合并,但结果仍然损坏
我的代码有问题吗?还是我在合并数组时犯了一个简单的错误?我正在做各种各样的事情来解决这个问题,但找不到任何有效的解决办法。一些例子或提示将是伟大的
要将[my_test]
和[my_date]
合并到[MyData]
中
Array
(
[0] => Array
(
[MyData] => Array
(
[id] => 79
[my_birth_day] => 1990-06-20
[my_address] => 400
[my_age] => 26
[my_name] => Joy
[my_id] => 1
[created] => 2017-06-19 15:39:44
)
[c] => Array
(
[my_test] => math
)
[a] => Array
(
[my_date] => 2017-08-13
)
).....Loops
[1] => Array
(
我希望结果是这样的
Array
(
[0] => Array
(
[MyData] => Array
(
[id] => 79
[my_birth_day] => 1990-06-20
[my_address] => 400
[my_age] => 26
[my_name] => Joy
[my_id] => 1
[created] => 2017-06-19 15:39:44
[my_test] => math
[my_date] => 2017-08-13
我做了一个逻辑来合并数组并将其显示为上面的代码,但无法合并
$res = $this->find( 'all', $cond); // All the data are fetchd from this $res
$count = count($res);
for($i=0;$i<$count;$i++){
$result[] = $res[$i] ;
$fixed_arrays[] = $result[$i]['MyData'];
if (!empty($result[$i]['c'])) {
$corrupt_c_array = $result[$i]['c'];
$fixed_arrays = array_merge($fixed_arrays,$corrupt_c_array);
}
if(!empty($result[$i]['a'])) {
$corrupt_a_array = $result[$i]['a'];
$fixed_arrays = array_merge($fixed_arrays, $corrupt_a_array);
}
}
$result['data'] = $fixed_arrays; // This $result['data'] should show the expected result.
$res=$this->find('all',$cond);//所有数据都是从这个$res获取的
$count=计数($res);
对于($i=0;$i您可以创建临时$data
数组并合并所有内容,然后分配给$fixed\u数组
列表
<?php
$res = $this->find( 'all', $cond); // All the data are fetched from this $res
$count = count($res);
for($i=0;$i<$count;$i++){
$result[] = $res[$i] ;
$data =array(); //temporary array
$data['MyData'] = $result[$i]['MyData'];
if (!empty($result[$i]['c']) && isset($result[$i]['c']['my_test'])) {
$corrupt_c_array = $result[$i]['c'];
$data['MyData']['my_test'] = $result[$i]['c']['my_test'];
}
if(!empty($result[$i]['a']) && isset($result[$i]['a']['my_date'])) {
$corrupt_a_array = $result[$i]['a'];
$data['MyData']['my_date'] = $result[$i]['a']['my_date'];
}
$fixed_arrays[] = $data;
}
$result['data'] = $fixed_arrays;
如果使用该条件,则如果该条件为空,则无法获取所有值,因此请如下使用:
<?php
$res = $this->find('all', $cond); // All the data are fetched from this $res
$count = count($res);
for ($i = 0; $i < $count; $i++) {
$result[] = $res[$i];
$data = array(); //temporary array
$data[$i]['MyData'] = $result[$i]['MyData'];
$data[$i]['MyData']['my_test'] = $result[$i]['c']['my_test'];
$data[$i]['MyData']['my_date'] = $result[$i]['a']['my_date'];
}
$result['data'] = $data;
$res=$this->find('all',$cond);
foreach($res as&$result){
$result['MyData']['my_test']=$result['c']['my_test'];
$result['MyData']['my_date']=$result['a']['my_date'];
未设置($result['a']);
未设置($result['c']);
}
回声“;
印刷品(港币);;
退出();
如何将其他$data合并到$data['MyData']?它在临时数组上创建一个变量$data['MyData']['my_test']
和$data['MyData']['my_date']
,然后将其分配到$fixed_数组
列表是否有办法使用set::combine,因为它是cakephp2?
$res = $this->find ( 'all', $cond );
foreach ( $res as &$result ) {
$result ['MyData'] ['my_test'] = $result ['c'] ['my_test'];
$result ['MyData'] ['my_date'] = $result ['a'] ['my_date'];
unset ( $result ['a'] );
unset ( $result ['c'] );
}
echo "<pre>";
print_r ( $res );
exit ();