aal*_*aap 3 php arrays function
我有一个具有键和值的数组.例如:
Array (
[name] => aalaap
[age] => 29
[location] => mumbai
)
Run Code Online (Sandbox Code Playgroud)
我想将密钥从这里转换为值,但我希望值在密钥之后立即显示.例如:
Array (
[0] => name
[1] => aalaap
[2] => age
[3] => 29
[4] => location
[5] => mumbai
)
Run Code Online (Sandbox Code Playgroud)
我可以轻松编写一个迭代函数来执行此操作...例如:
array_flatten($arr) {
foreach ($arr as $arrkey => $arrval) {
$arr_new[] = $arrkey;
$arr_new[] = $arrval;
}
return $arr_new;
}
Run Code Online (Sandbox Code Playgroud)
...但我试图找出是否有任何方式这可以使用来实现array_combine
,array_keys
,array_values
和/或array_merge
在一个,最好的,所以我并不需要使用自定义功能.
在那儿?
小智 6
您自己的解决方案可能是最干净的解决方案,因此将其转换为"单线程":
$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);
Run Code Online (Sandbox Code Playgroud)
这避免了不必要且昂贵的阵列复制或排序.
或者,失去全球:
array_walk($array, create_function('$val,$key,$result', '$result[]=$key; $result[]=$val;'), &$answer);
Run Code Online (Sandbox Code Playgroud)
Just Jules 答案的 PHP 5.3+ 版本,更具可读性:
array_walk($array, function($val, $key) use (&$answer) {
$answer[] = $key;
$answer[] = $val;
});
Run Code Online (Sandbox Code Playgroud)