我如何扁平化的关联数组在PHP中唯一值的数组? [英] How do I flatten an associative array into an array with only values in PHP?

查看:220
本文介绍了我如何扁平化的关联数组在PHP中唯一值的数组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个具有键和值的数组。对于例如:

I have an array that has keys and values. For eg:

Array (
    [name] => aalaap
    [age] => 29
    [location] => mumbai
)

我要的钥匙从这个转换成价值,但我希望这些值的按键之后apear。对于例如:

I want to convert the keys from this into values, but I want the values to apear right after the keys. For eg:

Array (
    [0] => name
    [1] => aalaap
    [2] => age
    [3] => 29
    [4] => location
    [5] => mumbai
)

我可以很容易地编写一个迭代函数,将做到这一点......对于例如:

I can easily write an iteration function that will do this... for eg:

array_flatten($arr) {
    foreach ($arr as $arrkey => $arrval) {
        $arr_new[] = $arrkey;
        $arr_new[] = $arrval;
    }
    return $arr_new;
}

...但我试图找出是否有任何方式这可通过完成 array_combine array_keys array_values​​ 和/或 array_merge ,$ p pferably在一个$,所以我不需要使用自定义函数。

...but I'm trying to find out if there's any way this can be accomplished using array_combine, array_keys, array_values and/or array_merge, preferably in one, so i don't need to use a custom function.

有没有?

推荐答案

您自己的解决方案也许是最简洁的解决方案,所以它转换为单行

Your own solution is probably the cleanest solution, so converting it to a "one-liner":

$array = array('name' => 'aalaap','age' => 29, 'location' => 'mumbai');
$answer = array();

array_walk($array, create_function('$val,$key', 'global $answer; $answer[]=$key; $answer[]=$val;'));

var_dump($answer);

这避免了不必要的和昂贵的阵列副本或排序。

This avoids unnecessary and expensive array copies or sorting.

另外,失去了全球的:

array_walk($array, create_function('$val,$key,$result', '$result[]=$key; $result[]=$val;'), &$answer);

这篇关于我如何扁平化的关联数组在PHP中唯一值的数组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆