欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

foreach循环数组有关问题

程序员文章站 2022-05-28 23:51:05
...
foreach循环数组问题
$account 数组如下
Array
(
[tencent] => Array
(
[0] => mylove_fish2008
[1] => caochengli_love
)

[sina] => Array
(
[0] => 2935994540
[1] => 3177446321
)

[163] => Array
(
[0] => 3395157578
[1] => 8589895537
)

[sohu] => Array
(
[0] => 1400582280
[1] => 1044720542
)

)

我现在要循环这个数组,有两种方法
1.foreach ($account as $key => $rows)
{
foreach ($rows as $val)
{
echo $val.' ';
}
}

2.foreach ($account['tencent'] as $val)
{
echo $val.' ';
}
$account['sina'],$account['163'],$account['sohu']一样循环

循环这种二维数组,哪种效率高点

------解决方案--------------------
引用:
引用:设你的二维数组包含N个一位数组,一维数组中有M个键值,
那么完整的遍历一次例1时间复杂度
为O(N*M)
例2
O(M+M+M)(N个)=》O(N*M)
效率我觉得应该是一样的

// 两个循环
$t1 = microtime(true);
$data = array('tencent' => a……

确实如楼主所说,浏览器下例2的效率比例1快了将近一倍的时间,不过我认为楼主给的例1测试用例
$t1 = microtime(true);
$data = array('tencent' => array('cadfdg', 'dfdgg'), 'sina' => array('111', '4654654'));
应该互换位置
下面是我的测试代码

class runtime {
public $StartTime = 0;
public $StopTime = 0;

function get_microtime(){
list($usec, $sec) = explode(' ', microtime());
return ((float)$usec + (float)$sec);
}

function start(){
$this->StartTime = $this->get_microtime();
}

function stop(){
$this->StopTime = $this->get_microtime();
}

function spent(){
return round(($this->StopTime - $this->StartTime) * 1000, 4);
foreach循环数组有关问题

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频


网友评论

文明上网理性发言,请遵守 新闻评论服务协议

我要评论
  • foreach循环数组有关问题
  • 专题推荐