多维数组转换为一维数组

3

我经常会遇到一个二维数组:

array(
  array('key' => 'value1'),
  array('key' => 'value2'),
  ...
);

需要形成一个一维数组:

array('value1', 'value2')

这可以很容易地使用foreach实现,但我想知道是否有一种PHP 5.3的方法可以在一行中完成。

https://dev59.com/qnM_5IYBdhLWcg3wlEFH - Haim Evgi
https://dev59.com/xUzSa4cB1Zd3GeqPoais - Haim Evgi
我不知道有任何内置函数可以从这样的数组结构中返回列。你能做的就是隐藏所需的循环(使用闭包)。 - Yoshi
从性能的角度考虑,我会坚持使用 foreach - binaryLV
4个回答

6
$new_array = array_map(function($el) { return $el['key']; }, $array);

1
<?php
    $arr = array(array(141,151,161,140),2,3,array(101,202,array(303,404),407));
    function array_oned($arrays){
        static $temp_array = array();
        foreach($arrays as $key){
            if(is_array($key)){
                array_oned($key);
            }else {
                $temp_array [] = $key;
            }
        }
        return $temp_array;
    }
    echo print_r(array_oned($arr));

?>

您是指类似这样的内容吗?


0
array_reduce($array,function($arr,$new){
    $arr[]=$new['key'];
},array())

0

如果内部数组中只有一个值:

$values = array_map('array_pop', $yourArray);

回调可以是函数名,那么为什么要重新实现已经作为核心函数存在的东西呢? :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接