PHP : foreach par référence en PHP4

Résolu/Fermé
bolbo Messages postés 22 Date d'inscription mercredi 5 mai 2004 Statut Membre Dernière intervention 10 mai 2005 - 27 avril 2005 à 13:33
macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 - 20 juin 2008 à 16:23
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 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 89
20 juin 2008 à 16:23
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 16 Date d'inscription jeudi 26 juin 2003 Statut Membre Dernière intervention 3 juin 2009 5
28 oct. 2007 à 21:55
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 Date d'inscription jeudi 15 avril 2004 Statut Membre Dernière intervention 28 octobre 2008 282
27 avril 2005 à 13:43
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
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