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);
    3
    1. Salut,

      j'ai plus simple :

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


      et voilà ;)
      1
      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
        0
        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
          -2