duancilan5124 2014-10-23 13:48
浏览 89
已采纳

如何将子值添加到新数组?

I have an array with every containing value being another array with one value. I was looking for a way to flatten the array and succeeded but somehow I am having this feeling that it can be done better. Is this the best way or can it still be improved?

<?php

$array = array(
    '1' => array('id' => '123'),
    '2' => array('id' => '22'),
    '3' => array('id' => '133'),
    '4' => array('id' => '143'),
    '5' => array('id' => '153'),
);

array_walk_recursive($array, function($v, $k) use (&$result) {
    $result[] = $v;
});
  • 写回答

4条回答 默认 最新

  • dongsong4418 2014-10-23 14:35
    关注

    You can achieve that using the array_map function:

    $func = function($value) {
        return $value['id'];
    };
    $array2 = array_map($func, $array);
    

    Or if you want to keep it in one line do:

     $array2 = array_map(function($value) { return $value['id']; }, $array);
    

    This will return the array flattened and keeps your initial keys:

        array(5) {
          [1]=>
              string(3) "123"
          [2]=>
              string(2) "22"
          [3]=>
              string(3) "133"
          [4]=>
              string(3) "143"
          [5]=>
              string(3) "153"
        }
    

    If you don't want to keep the keys, then call the following at the end:

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

报告相同问题?

悬赏问题

  • ¥15 高缺失率数据如何选择填充方式
  • ¥50 potsgresql15备份问题
  • ¥15 Mac系统vs code使用phpstudy如何配置debug来调试php
  • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
  • ¥60 pb数据库修改与连接
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!