您好,匿名用户
随意问技术百科期待您的加入

PHP数组转换最有效率的方法

0 投票

原数组是

array(
'0'=>array(
'id'=>'1',
'name'=>'张三',
),
'1'=>array(
'id'=>'2',
'name'=>'李四',
)
......
)

用最有效率的方案转换成(能用内置函数就用内置函数)

array(
'1'=>'张三',
'2'=>'李四',
......
)
用户头像 提问 2012年 12月1日 @ Kayle 上等兵 (277 威望)
分享到:

1个回答

0 投票
 
最佳答案

没有PHP内置函数可以实现这个效果,要实现相反的效果可以用array_chunk()

所以只能这样:

while($ele = array[$i])
{
    $new_array[$ele['id']]=$ele['name'];
}

你可以尝试着测试一下性能,看看while ($ele = array[$i]) 和 while (list(...)...),还有for() 哪个更快,应该是都比foreach快,不过差距非常小就是了,从代码简洁角度,我还是推荐foreach()

更新:foreach()比list() = each()慢是我8年前的经验了,刚刚看了一下http://www.phpbench.com/,foreach居然是最快的。我仍然要多说一句,他们的性能差距微小到可以忽略。

更新:array_chunk()不能实现相反的效果,因为原数组每个元素有相同的字符下标,大家别被我误导了。

用户头像 回复 2012年 12月1日 @ Annie 上等兵 (299 威望)
选中 2012年 12月1日 @Kayle
提一个问题:

相关问题

0 投票
1 回复 36 阅读
用户头像 提问 2013年 11月15日 @ Capricorn 上等兵 (188 威望)
0 投票
1 回复 40 阅读
0 投票
1 回复 42 阅读
用户头像 提问 2012年 12月1日 @ Nunu 上等兵 (350 威望)
0 投票
1 回复 36 阅读
用户头像 提问 2013年 10月28日 @ Kayle 上等兵 (277 威望)
0 投票
1 回复 45 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...