dongwen7380 2010-11-18 16:16
浏览 45
已采纳

将多维数组转换为单维数组

If from a function I am returned a multidimensional array like this..

array(0 => array('a' => 5), 1 => array('a' => 8))

But I just really need the contents of the key 'a' what is the best way for me to convert.

Current I have been doing something like..

$new_array = array();

foreach ($multi_array AS $row) {
    $new_array[] = $row['a']
}
  • 写回答

4条回答 默认 最新

  • duanjiu1950 2010-11-18 16:22
    关注

    If that is all your requirements are, I think that is the best way. Anything else will have the same processing. Even after looking through the Array functions, I would say that this would be the best way. You can, however, make it a function to make it a bit more versatile:

    $array = array(0 => array('a' => 1), 1 => array('a' => 8));
    
    $new_array = flatten($array, 'a');    
    
    function flatten($array, $index='a') {
         $return = array();
    
         if (is_array($array)) {
            foreach ($array as $row) {
                 $return[] = $row[$index];
            }
         }
    
         return $return;
    }
    

    But yea, I would say what you have would be the most efficient way of doing it.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 关于超局变量获取查询的问题
  • ¥20 Vs code Mac系统 PHP Debug调试环境配置
  • ¥60 大一项目课,微信小程序
  • ¥15 求视频摘要youtube和ovp数据集
  • ¥15 在启动roslaunch时出现如下问题
  • ¥15 汇编语言实现加减法计算器的功能
  • ¥20 关于多单片机模块化的一些问题
  • ¥30 seata使用出现报错,其他服务找不到seata
  • ¥35 引用csv数据文件(4列1800行),通过高斯-赛德尔法拟合曲线,在选取(每五十点取1点)数据,求该数据点的曲率中心。
  • ¥20 程序只发送0X01,串口助手显示不正确,配置看了没有问题115200-8-1-no,如何解决?