PHP : foreach par référence en PHP4

Résolu
bolbo Messages postés 22 Statut Membre -  
macgawel Messages postés 676 Statut Membre -
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. macgawel Messages postés 676 Statut Membre 89
     
    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
  2. fodjio Messages postés 17 Statut Membre 5
     
    Salut,

    j'ai plus simple :

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


    et voilà ;)
    1
  3. dedale82 Messages postés 403 Statut Membre 283
     
    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
  4. Daajack
     
    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