我如何扁平化的关联数组在PHP中唯一值的数组? [英] How do I flatten an associative array into an array with only values in 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屋!