将二维数组转换为单个数组

时间:2017-08-28 14:53:16

标签: php arrays multidimensional-array

我想将数组转换为单个数组。 这是我的数组代码如下:

Array
    (
        [0] => Array
            (
                [label] =>  
                [value] => 
            )

        [1] => Array
            (
                [value] => 4
                [label] => 0.5
            )

        [2] => Array
            (
                [value] => 5
                [label] => 0.6
            )

    )

想要获得以下结果:

    Array(
            '4' =>  '0.5',
            '5' =>  '0.6',
   );

3 个答案:

答案 0 :(得分:1)

试试这个:

JavaDoc

使用可以根据需要使用非空或空的过滤器。

答案 1 :(得分:0)

试试这个:

$array = array(
    array('value' => '', 'label' => ''),
    array('value' => 4, 'label' => 0.5),
    array('value' => 5, 'label' => 0.6)
);

$new_array = array();
foreach($array as $item_array){
    if(!empty($item_array['value'])){
        $new_array[$item_array['value']] = $item_array['label'];
    }
}

print_r($new_array);

答案 2 :(得分:0)

您可以使用以下功能:

array_column() - 返回输入数组中单个列的值

array_combine() - 通过使用一个数组作为键而另一个数组作为其值

来创建数组

array_filter() - 使用回调函数过滤数组的元素,如果没有提供回调,则将删除所有等于FALSE(see converting to boolean)的数组条目。

<强>脚本

akshay@db-3325:/tmp$ cat test.php 
<?php


$array = array(
    array('value' => '', 'label' => ''),
    array('value' => 4, 'label' => 0.5),
    array('value' => 5, 'label' => 0.6)
);

/* make use of array_column and array_combine */
print_r( array_combine( array_column($array, 'value'), array_column($array, 'label') ) );

/* to remove empty elements use array_filter */
print_r( array_filter( array_combine( array_column($array, 'value'), array_column($array, 'label') ) ) );

?>

<强>输出

akshay@db-3325:/tmp$ php test.php 
Array
(
    [] => 
    [4] => 0.5
    [5] => 0.6
)
Array
(
    [4] => 0.5
    [5] => 0.6
)