将多维数组转换为更简单的形式

时间:2016-02-24 10:26:15

标签: php arrays multidimensional-array

我有一个如下所示的数组, 如何将上面的array1转换为array2形式?

array1

canMove

数组2

Array
(
[0] => Array
    (
        [0] => 500 GB
    )

[1] => Array
    (
        [0] => 100 GB
    )

 )

1 个答案:

答案 0 :(得分:1)

$yourArray = [[0 => '500 GB'], [0 => '100 GB'], [1 => '200 GB']];
$result = array_filter(
    array_map(
    function($element) {
        if (isset($element[0])) {
            return $element[0];
        }

        return;
    },
    $yourArray
    ),
    function($element) {
        return $element !== null;
    }
);

echo var_dump($result); // array(2) { [0]=> string(6) "500 GB" [1]=> string(6) "100 GB" }

这仅适用于php> = 5.4(因为数组短语法)。如果您使用的是旧版本,请将[]替换为array()

array_filter用于从数组中排除某些值(通过使用回调函数)。在这种情况下,您从NULL获得的array_maparray_map用于应用函数来“转换”数组。特别是它将函数应用于每个数组元素,并在函数应用之后返回该元素。