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
A voir également:

4 réponses

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
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
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
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