我有一个数组
array('a' => 1, 'b' => 2, 'c' => 3)
我想要
array('a', 1, 'b', 2, 'c', 3)
我该怎么做?是否有可能不使用每个/循环?
答案 0 :(得分:3)
使用foreach($ array作为$ key => $ value)然后将它们转储到新数组中。
答案 1 :(得分:3)
$a = array('a' => 1, 'b' => 2, 'c' => 3);
foreach($a as $k=>$v) {
$b[] = $k;
$b[] = $v;
}
print_r($b);
// output - Array ( [0] => a [1] => 1 [2] => b [3] => 2 [4] => c [5] => 3 )
答案 2 :(得分:2)
foreach
,但我不知道为什么在数组函数中需要它
我使用了array_walk
而不是foreach
<?php
$arr=array('a' => 1, 'b' => 2, 'c' => 3);
$new_arr = array();
array_walk($arr,function ($v,$k) use (&$new_arr) { $new_arr[]=$k;$new_arr[]=$v;});
print_r($new_arr);
<强>输出强>:
Array
(
[0] => a
[1] => 1
[2] => b
[3] => 2
[4] => c
[5] => 3
)
答案 3 :(得分:2)
我认为,对于它来说,这是一个荒谬的单行(*):
$a = array('a' => 1, 'b' => 2, 'c' => 3);
$result = array_combine(range(0, count($a) * 2 - 1, 2), array_keys($a)) + array_combine(range(1, count($a) * 2, 2), array_values($a));
ksort($result);
print_r($result);
(*)它仍然需要ksort()
作为单独的步骤。
基于OP的评论,我意识到它可以更简洁(*)
$result = explode('=', http_build_query($a, '', '='));
(*)牺牲正确性
答案 4 :(得分:1)
如果你没有使用循环的话,这是一个例子:
$a = array('a' => 1, 'b' => 2, 'c' => 3);
$flip = array_flip($a);
$return = array_merge(array_values($a), array_values($flip));