2010-12-22 5 views
1

Lequel des deux sera plus rapide et comment peut faire de telles mesuresLequel des deux sera plus rapide

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"]; 
} 
} 

ou

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

Lequel des deux est mieux

+0

Juste pour plus de clarté, je choisirais la seconde. La différence de performance est probablement négligeable ... –

Répondre

1

La deuxième méthode.

Première méthode aura en tête si le nombre de $post['like'] & $post['comment'] est différent

PS: première méthode ne fait pas la même chose que la deuxième méthode ne ...

boucle totale dans la méthode A = 2 x max array size
boucle totale dans la méthode B = size of array A+size of array B

Quant au $users, doit être le même pour les deux procédé

+0

pourquoi quelle est l'erreur/diffrence – aWebDeveloper

+0

mis à jour la réponse, s'il vous plaît vérifier est-il logique? – ajreal

Questions connexes