哪两个会更快

时间:2010-12-22 09:12:12

标签: php

两者中的哪一个会更快,如何进行此类测量

foreach ($posts as $post)
{
 $totalikes = count($post["Like"]);
 $totacomments = count($post["Comment"]);
 $max = ($totalikes < $totacomments )? $totacomments  : $totalikes;
 for($i=0;$i<$max;$i++)
 {
  if(isset($post["Like"][$i]))
   $users[] = $post["Like"][$i]["user_id"];
  if(isset($post["Comment"][$i]))
   $users[] = $post["Comment"][$i]["user_id"];
 }
}

foreach ($posts as $post)
{
 foreach ($post["Like"] as $like)
 {
  $users[] = $like["user_id"];
 }
 foreach ($post["Comment"] as $comment)
 {
  $users[] = $comment["user_id"];
 }
}

两者中哪一个更好

1 个答案:

答案 0 :(得分:1)

第二种方法。

如果$post['like'] & $post['comment']的计数不同,则第一种方法会产生开销

PS:第一种方法与第二种方法没有做同样的事情......

方法A中的总循环= 2 x max array size
方法B中的总循环= size of array A+size of array B

对于$users,两种方法

应该相同