欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php将$arr 二维数组的所有第二层合并后返回

程序员文章站 2024-01-28 16:37:10
...
php将$arr 二维数组的所有第二层合并后返回

array_merge() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
但是只能合并第一层,却无法合并二级数组的二维部分
我写了点代码,感觉很不好,希望高手指更好的方法


  1. $arr=array(
  2. "0" => array(
  3. "44" => array("id" => 44,"name" => '九鱼图'),
  4. "45" => array("id" => 45,"name" => '锦鲤')
  5. ),
  6. "1" => array(
  7. "49" => array("id" => 49,"name" => '百福图'),
  8. "50" => array("id" => 50,"name" => '蝙蝠')
  9. ),
  10. "2" => array(
  11. "40" => array("id" => 40,"name" => '古钱'),
  12. "41" => array("id" => 41,"name" => '葫芦')
  13. )
  14. );
  15. //将$arr 二维数组的所有第二层合并后返回
  16. function array_merge_array($arr)
  17. {
  18. $str="$"."son_arr=array_merge(";
  19. foreach($arr as $k => $v)
  20. {$str.='$arr['.$k.'],';}
  21. $str.=");";
  22. eval(str_replace(',)',')',$str));
  23. return $son_arr;
  24. }
  25. print_r(array_merge_array($arr));
  26. /*
  27. 得到结果
  28. Array
  29. (
  30. [0] => Array
  31. (
  32. [id] => 44
  33. [name] => 九鱼图
  34. )
  35. [1] => Array
  36. (
  37. [id] => 45
  38. [name] => 锦鲤
  39. )
  40. [2] => Array
  41. (
  42. [id] => 49
  43. [name] => 百福图
  44. )
  45. [3] => Array
  46. (
  47. [id] => 50
  48. [name] => 蝙蝠
  49. )
  50. [4] => Array
  51. (
  52. [id] => 40
  53. [name] => 古钱
  54. )
  55. [5] => Array
  56. (
  57. [id] => 41
  58. [name] => 葫芦
  59. )
  60. )
  61. */
  62. ?>
复制代码