我有一个类似的数组
array(4) {
[0]=>
array(2) {
[0]=>
string(10) "2012-05-23"
[1]=>
string(10) "2012-05-31"
}
[1]=>
array(2) {
[0]=>
string(10) "2012-05-30"
[1]=>
string(10) "2012-06-07"
}
[2]=>
array(2) {
[0]=>
string(10) "2012-06-02"
[1]=>
string(10) "2012-06-07"
}
}
我想将此数组转换为
array(6) {
[0]=>
string(10) "2012-05-23"
[1]=>
string(10) "2012-05-31"
[2]=>
string(10) "2012-05-30"
[3]=>
string(10) "2012-06-07"
[4]=>
string(10) "2012-06-02"
[5]=>
string(10) "2012-06-07"
}
我想动态地做。我的意思是我可以在这里有一个100维的阵列。所以必须是循环中的东西:)
答案 0 :(得分:4)
$final_array =array();
foreach ($data as $val)
{
foreach($val as $val2)
{
$final_array[] = $val2;
}
}
答案 1 :(得分:3)
function makeArray($finalArray,$element) {
foreach ($element as $key => $value){
if(is_array($value)) makeArray($finalArray,$value);
else $finalArray[] = $value;
}
}
如果您想要一个“通用”解决方案,那就是
显然你必须第一次调用它,$finalArray
为空数组,$element
为起始数组
答案 2 :(得分:2)
使用以下代码:
$it = new RecursiveIteratorIterator(new RecursiveArrayIterator($data));
$l = iterator_to_array($it, false);
答案 3 :(得分:1)
在php文档评论中有很多扁平化策略: http://php.net/manual/en/function.array-values.php
答案 4 :(得分:1)
答案 5 :(得分:0)
简单搜索从PHP.net docs
返回此信息<?php
/**
* Flattens an array, or returns FALSE on fail.
*/
function array_flatten($array) {
if (!is_array($array)) {
return FALSE;
}
$result = array();
foreach ($array as $key => $value) {
if (is_array($value)) {
$result = array_merge($result, array_flatten($value));
}
else {
$result[$key] = $value;
}
}
return $result;
}
?>
答案 6 :(得分:0)