我想用数组函数来转换数组

时间:2015-12-15 10:39:28

标签: php arrays function

我有像下面的数组。我想转换这个数组,但我想使用数组函数。是否有任何数组函数转换为数组

sessionid

进入这个数组

[name] => Array
            (
                [0] => Cash Crops
                [7] => Cereal Crops
                [12] => Vegetables
                [25] => Leafy Vegetables
                [28] => Vine Vegetables
            )

4 个答案:

答案 0 :(得分:4)

使用array_walk应用于内部name数组

$a = array(
    'name' => array(
        'Cash Crops','Cereal Crops','Vegetables','Leafy Vegetables','Vine Vegetables'
    )
);

$result = array();

array_walk($a['name'],
    function($value,$index) use (&$result){
        $result[] = array(
            'name' => $value
        );
});

print_r($result);

将输出

Array
(
    [0] => Array
        (
            [name] => Cash Crops
        )

    [1] => Array
        (
            [name] => Cereal Crops
        )

    [2] => Array
        (
            [name] => Vegetables
        )

    [3] => Array
        (
            [name] => Leafy Vegetables
        )

    [4] => Array
        (
            [name] => Vine Vegetables
        )

)

答案 1 :(得分:2)

使用本机php函数执行此操作的最佳方法是使用array_map()

<?php
function twod($n)
{
    $res = array('name' => $n);
    return($res);
}

$a['name'] = array(1, 2, 3, 4, 5);
$new_array = array_map("twod", $a['name']);
print_r($new_array);
?>

请务必让社区了解您为什么要以特定方式获取某些内容,而不是仅仅说“我可以编写逻辑来转换它但我想要数组函数

答案 2 :(得分:1)

$oldarray = array()//your array with old data;
$newarray = convertArray($oldarray);

function convertArray($old){
    $new = array();
    foreach($old as $index=>$value)
    {
        $new[]['name'] = $value;
    }
    return $new;
}

这会将其转换为您的数组。

答案 3 :(得分:0)

此oneliner适用于任何“名称”:

$tal = array_map(function($x) use($array)  {return array( array_keys($array)[0] => $x);}, $array[array_keys($array)[0]]);