我甚至不确定我们是否调用了transform,但是,假设我们有一个这样的数组:
一)
Array
(
[id] => 532b436477936
[name] => Record #1
[created] => 20-03-2014
[regions] => Array
(
[0] => Array
(
[id] => 532b3fcbf2353
[name] => Region #2
[created_at] => 1395343322
)
[1] => Array
(
[id] => 532b3fcbf2354
[name] => Region #3
[created_at] => 1395343323
)
)
)
我们希望像这样转换它:
二)
Array
(
[0] => Array
(
[id] => 532b436477936
[name] => Record #1
[created] => 20-03-2014
[regions.id] => 532b3fcbf2353
[regions.name] => Region #2
[regions.created_at] => 1395343322
)
[1] => Array
(
[id] => 532b436477936
[name] => Record #1
[created] => 20-03-2014
[regions.id] => 532b3fcbf2354
[regions.name] => Region #3
[regions.created_at] => 1395343323
)
)
我可以在代码方面得到一些帮助吗?
$actual = array(
'id' => '532b436477936',
'name' => 'Record #1',
'created' => '20-03-2014',
'regions' => array(
array('id' => '532b3fcbf2353', 'name' => 'Region #2'),
array('id' => '532b3fcbf2354', 'name' => 'Region #3')
)
);
var_dump($actual);
$desired = array(
array(
'id' => '532b436477936',
'name' => 'Record #1',
'created' => '20-03-2014',
'regions.id' => '532b3fcbf2353',
'regions.name' => 'Region #2',
),
array(
'id' => '532b436477936',
'name' => 'Record #1',
'created' => '20-03-2014',
'regions.id' => '532b3fcbf2354',
'regions.name' => 'Region #3',
)
);
var_dump($desired);
我可以打开一些灯来查看以将 A 转换为 B 吗?
$desired = array();
foreach($actual['regions'] as $region)
{
$desired[] = array(
'id' => '532b436477936',
'name' => 'Record #1',
'created' => '20-03-2014',
'region.id' => $region['id'],
'region.name' => $region['name']);
}
$actual = array(
'id' => '532b436477936',
'name' => 'Record #1',
'created' => '20-03-2014',
'regions' => array(
array('id' => '532b3fcbf2353', 'name' => 'Region #2'),
array('id' => '532b3fcbf2354', 'name' => 'Region #3')
)
);
$desired = array();
foreach($actual as $actual_dummy => $a)
{
foreach($a['regions'] as $Region_dummy => $r)
{
$desired[]=array("id" => $a['id'],
"name" => $a['name'],
"created" => $a['created'],
"regions.id" => $r['id'],
"regions.name" => $r['name']);
}
}
试试这个:
$desired = array();
$basic = $actual;
unset($basic['regions']);
foreach($actual['regions'] as $key=>$val){
foreach($val as $key2=>$val2) {
$basic["$key.$key2"] = $val2;
}
$desired[] = $basic;
}