sam
13
fév '10
avant - après : array_rand()
À 07:00 dans la rubrique PHP / PEAR
←
/ #1050
/ rss
/ →
Petite optimisation d'un vieux bout de code qui trainait
Avant
[php]
if (isset($arrItem)) {
$items_selected_nbr = sizeof($arrItem);
if ($items_selected_nbr>2) {
srand((double)microtime() * 1000000);
$itemList[0] = rand(0,($items_selected_nbr) - 1);
do {
srand((double)microtime() * 1000000);
$rand = rand(0,($items_selected_nbr) - 1);
} while (in_array($rand, $itemList));
$itemList[1] = $rand;
do {
srand((double)microtime() * 1000000);
$rand = rand(0,($items_selected_nbr) - 1);
} while (in_array($rand, $itemList));
$itemList[2] = $rand;
$itemList[0] = $arrItem[$itemList[0]];
$itemList[1] = $arrItem[$itemList[1]];
$itemList[2] = $arrItem[$itemList[2]];
?>
Après
[php] <?php $itemList = array_intersect_key($arrItem, array_flip(array_rand($arrItem, min(3,count($arrItem))))); ?>
En fait l'ancien code retourne toujours 3 éléments qui se suivent. et rien du tout si le tableau initial est plus petit que 3








Commentaires
1. Le samedi 13 février 2010 à 08:04, par epommate
2. Le samedi 13 février 2010 à 12:44, par Moosh
3. Le samedi 13 février 2010 à 14:44, par Moosh
Ajouter un commentaire