Dan*_*ugg 4 php arrays associative-array
很简单:
// turn
array('foo', 'bar', 'hello', 'world');
// into
array('foo' => 'bar', 'hello' => 'world');
Run Code Online (Sandbox Code Playgroud)
现在我正在使用:
do{
$arrayOut[current($arrayIn)] = next($arrayIn);
}while(next($arrayIn));
Run Code Online (Sandbox Code Playgroud)
我想知道如果没有中间变量,有没有办法做到这一点,$arrayOut
.我可以写一个函数,但这只是一个用例,我试图保持我的脚本整洁.我只是想知道在文档中是否遗漏了一些可以达到此目的的东西.
值来自路由路径:
route/to/controller/action/key1/value1/key2/value2
Run Code Online (Sandbox Code Playgroud)
它爆炸了,最后在使用其他组件后,我就离开了 ('key1', 'value1', 'key2', 'value2', ...)
感谢大家的见解和建议.Long Ears以简洁的方式赢得了这个,当扩展到超过"1线"时,并不是非常神秘(我至少不认为)
然而,同样关于Long Ears的建议,也许我对语义精确的代码的渴望最小化了我的好处,而我正在追逐雏菊试图保持我的变量范围"无污染",用自己来解释.
您可以使现有代码更有效(每次迭代删除一个函数调用,开头一个:)
$b = array();
array_unshift($a, false);
while (false !== $key = next($a)) {
$b[$key] = next($a);
}
Run Code Online (Sandbox Code Playgroud)
好的,(颤抖)这是你的一个班轮:
$b = call_user_func_array('array_merge', array_map(function($v) { return array($v[0] => $v[1]); }, array_chunk($a, 2)));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1077 次 |
最近记录: |