Php 如何将多维数组存储为简单数组
我有一个数组,如下所示Php 如何将多维数组存储为简单数组,php,arrays,Php,Arrays,我有一个数组,如下所示 Array ( [0] => [key-1] => Array ( [key-1-1] => 33 [key-1-2] => 22 ) [key-2] => -1 [key-3] => Array ( [data] => Array (
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_内容保存到外部php文件。我尝试了几个小时,尝试了var_export,multiple 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';
有人能帮你实现吗?你可以用array\u walk\u recursive接近你想要的输出。麻烦的键是数字键 如果您只有一个其他的_数据子数组,您可以稍微调整下面的输出。您将获得类似数字键的覆盖值。所以这个方法实际上取决于你的数据
<?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',
)