Heim > Backend-Entwicklung > PHP-Tutorial > foreach循环数组有关问题

foreach循环数组有关问题

WBOY
Freigeben: 2016-06-13 11:13:04
Original
852 Leute haben es durchsucht

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'));
应该互换位置
下面是我的测试代码
<br>	class runtime {  <br>		public $StartTime = 0; <br>		public $StopTime = 0;<br>		<br>		function get_microtime(){     <br>			list($usec, $sec) = explode(' ', microtime());      <br>			return ((float)$usec + (float)$sec);   <br>		}  <br>		<br>		function start(){   <br>			$this->StartTime = $this->get_microtime();   <br>		 }  <br>		 <br>		function stop(){    <br>			$this->StopTime = $this->get_microtime();   <br>		}  <br>		<br>		function spent(){    <br>			return round(($this->StopTime - $this->StartTime) * 1000, 4);    <div class="clear">
                 
              
              
        
            </div>
Nach dem Login kopieren
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage