如何将三维数组更改为一维数组(PHP)
我有一个三维阵列。我想修正一个函数,将其转换为一维数组,并保留上一个子键。我该怎么做如何将三维数组更改为一维数组(PHP),php,Php,我有一个三维阵列。我想修正一个函数,将其转换为一维数组,并保留上一个子键。我该怎么做 array(2) { [0]=> array(2) { [0]=> array(2) { ["id"]=> string(1) "4" ["assignedlessons"]=> string(2) "69" } [1]=> array(2) { ["id"]=> string(1) "4
array(2) {
[0]=>
array(2) {
[0]=>
array(2) {
["id"]=>
string(1) "4"
["assignedlessons"]=>
string(2) "69"
}
[1]=>
array(2) {
["id"]=>
string(1) "4"
["assignedlessons"]=>
string(3) "308"
}
}
array(2) {
[0]=>
array(2) {
["id"]=>
string(1) "10"
["assignedlessons"]=>
string(2) "50"
}
[1]=>
array(2) {
["id"]=>
string(1) "10"
["assignedlessons"]=>
string(2) "91"
}
}
}
我想将其转换为如下结构:
array(0) {
["id"]=>
string(1) "4"
["assignedlessons"]=>
string(2) "69"
}
array(1) {
["id"]=>
string(1) "4"
["assignedlessons"]=>
string(3) "308"
}
array(2) {
["id"]=>
string(1) "10"
["assignedlessons"]=>
string(2) "50"
}
array(3) {
["id"]=>
string(1) "10"
["assignedlessons"]=>
string(2) "91"
}
我拥有的是这个功能:
function toSingleDimentionalArray($array){
$final = array();
foreach($array as $value){
foreach($array as $key => $val){
$final[]['id'] = $val['id'];
$final[]['assignedlessons'] = $val['assignedlessons'];
}
}
return $final;
}
但它只会返回这样的结果:
array(19648) {
[0]=>
array(1) {
["id"]=>
string(1) "4"
}
[1]=>
array(1) {
["assignedlessons"]=>
string(2) "69"
}
[2]=>
array(1) {
["id"]=>
string(1) "4"
}
[3]=>
array(1) {
["assignedlessons"]=>
string(3) "308"
}
这会奏效的
function toNotActuallyASingleDimensionalArray($array) {
$final = array();
foreach($array as $subarray) {
foreach($subarray as $val) {
$final[] = $val;
}
}
return $final;
}
嗯
它适用于n维数组到目前为止您尝试了什么?这是一个非常直接的循环,应该不会太难实现。看看这些:您想要的结果不是一个一维数组注意
array(3)
表示“长度为3的数组”。下次,使用print\r()
调试变量内容。
$final_array = array();
foreach($array as $sub_array)
{
foreach($sub_array as $temp_array)
{
$final_array[] = $temp_array;
}
}
function simplify_array($array, $first_level=true) {
foreach($array as $key => $value) {
$last_level = !is_array($value);
if($last_level) {
return $array;
}else if($first_level) {
$return[] = simplify_array($value, false);
}else{
return simplify_array($value, false);
}
}
return $return;
}
print_r(simplify_array($arr));