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 :
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
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
-
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); -
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 -
Salut,
j'ai plus simple :
$arr = array(1, 2, 3, 4); foreach($arr as $cle=>$val){ $arr[$cle]=$val*2; }
et voilà ;) -
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