Can someone please help me to flatten a multidimensional array. I know this is probably a dupe question but the solutions so far wasn't quite what I was looking for...
I have an array that looks like this:
$list = array ( 0 => array ( 490 => array ( 774 => array ( ), 744 => array ( ), 656 => array ( ), 741 => array ( ), 430 => array ( ), 342 => array ( ), 351 => array ( ), 648 => array ( ), 723 => array ( ), 583 => array ( ), 600 => array ( ), 631 => array ( 118 => array ( ), ), 372 => array ( ), 802 => array ( ), 644 => array ( 651 => array ( ), 652 => array ( ), 655 => array ( ), ), 101 => array ( ), 548 => array ( ), 629 => array ( 547 => array ( ), ), 489 => array ( ), 301 => array ( ), 211 => array ( ), 582 => array ( ), 589 => array ( ), 790 => array ( ), 692 => array ( ), 693 => array ( 780 => array ( ), 782 => array ( ), 803 => array ( ), 694 => array ( ), 695 => array ( ), ), 722 => array ( ), 746 => array ( 816 => array ( ), 747 => array ( ), 748 => array ( ), ), 749 => array ( 750 => array ( ), 751 => array ( ), 752 => array ( ), 753 => array ( ), 754 => array ( ), 755 => array ( ), ), 760 => array ( ), ), 598 => array ( 769 => array ( 762 => array ( ), ), 628 => array ( 436 => array ( ), ), 166 => array ( ), 213 => array ( ), 244 => array ( ), 541 => array ( ), 367 => array ( ), 242 => array ( ), 75 => array ( ), 312 => array ( ), 523 => array ( ), 670 => array ( 671 => array ( ), ), 494 => array ( ), 428 => array ( ), 668 => array ( 815 => array ( ), 669 => array ( ), 672 => array ( ), 680 => array ( ), 688 => array ( ), 763 => array ( ), ), 584 => array ( ), 510 => array ( ), 267 => array ( ), ), 725 => array ( 812 => array ( ), 726 => array ( ), ), 824 => array ( ), 727 => array ( 728 => array ( ), ), ), )
Its important not to change the keys or the order of the keys as they are required to get the relevant data later. All I need is to flatten everything in the order it is now. My best attempt so far was:
function order_arr($list){
$new_arr = [];
foreach ($arr as $key => $value){
foreach ($value as $key2 => $value2){
$new_arr[$key2] = [];
if (is_array($value2)){
foreach ($value2 as $key3 => $value3){
$new_arr[$key3] = [];
if (is_array($value3)){
foreach ($value3 as $key4 => $value4){
$new_arr[$key4] = [];
if (is_array($value4)){
foreach ($value4 as $key5 => $value5){
$new_arr[$key5] = [];
}
}
}
}
}
}
}
}
return $new_arr;
}
but for some reason it doesn't return all the rows. The code also looks a little bit dirty so any help would be much appreciated. Even if its just pointing me in the right direction.