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 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分