我有一个数组,如下所示。
Array
(
[0] =>
[key-1] => Array
(
[key-1-1] => 33
[key-1-2] => 22
)
[key-2] => -1
[key-3] => Array
(
[data] => Array
(
[other_data] => Array
(
[0] => data1
[1] => data2
)
)
)
[key-4] => data3
[key-5] => data4
)我需要将这些转换为更简单形式的终值,如下所示,并使用file_put_contents保存到外部php文件。我尝试了几个小时,我尝试了var_export,多个foreach,并获得了一定程度的成功,但并不完全是我想要的。
$value['key-1-1'] = '33';
$value['key-1-2'] = '22';
$value['other_data'] = array('data1', 'data2');
$value['key-4'] = 'data3';
$value['key-5'] = 'data4';有没有人可以帮助实现这个目标?
发布于 2019-12-17 17:31:51
使用array_walk_recursive可以在一定程度上接近所需的输出。最麻烦的键是数字键。
如果你只有一个other_data子数组,你可以稍微调整下面的输出。您将获得类似数字键的重写值。因此,这种方法实际上取决于您的数据。
<?php
$data =
array
(
'0' =>'',
'key-1' => array
(
'key-1-1' => 33,
'key-1-2' => 22
),
'key-2' => -1,
'key-3' => array
(
'data' => array
(
'other_data' => array
(
'0' => 'data1',
'1' => 'data2'
)
)
),
'key-4' => 'data3',
'key-5' => 'data4'
);
array_walk_recursive($data, function($v, $k) use (&$result) {
$result[$k] = $v;
});
var_export($result);输出:
array (
0 => 'data1',
'key-1-1' => 33,
'key-1-2' => 22,
'key-2' => -1,
1 => 'data2',
'key-4' => 'data3',
'key-5' => 'data4',
)https://stackoverflow.com/questions/59344919
复制相似问题