PHP : foreach par référence en PHP4

Résolu
Bonjour,

J'ai un problème avec un foreach en PHP4.
J'ai vu sur PHP.net :
<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
   $value = $value * 2;
}
// $arr vaut maintenant array(2, 4, 6, 8)
?>

qui permet de modifier la valeur du tableau $arr, mais ca ne marche que en PHP5.

quelqu'un aurait il une solution équivalente en PHP 4?

Merci d'avance,

Bolbo

4 réponses

  1. En fait, ce que tu veux c'est appliquer une fonction (dans ton exemple, *2) à chaque élément d'un Array ?

    La fonction array_map est faite pour toi !
    function doubler($var) {
       return $var*2;
    }
    
    $arr = array(1, 2, 3, 4);
    $arr = array_map('doubler', $arr);
    1. Salut,
      sans foreach ni passage par reference, tu peux essayer ca :
      <?php
      $arr = array(1, 2, 3, 4);
      $i=0;
      $max = count($arr);
      while($i<$max)
      {
      $arr[$i] *=2;
      }
      ?>

      A plus
      1. Salut,

        j'ai plus simple :

        $arr = array(1, 2, 3, 4);
        
        foreach($arr as $cle=>$val){
            $arr[$cle]=$val*2;
        }
        


        et voilà ;)
        1. Salut,

          J'ai encore plus simple :) :

          $arr = array(1, 2, 3, 4);

          foreach($arr as &$val) $val *= 2;

          Cette méthode ne fonctionne que depuis PHP 5