renomé les clés d'un tableau associatif

asdepik
Invité n'ayant pas de compte PHPfrance

12 janv. 2010, 14:56

Bonjour

j'ai un tableau de cette forme
Array
(
    [0] => Array
        (
            [valeur] => 0056
        )

    [1] => Array
        (
            [valeur] => johnny
        )

    [2] => Array
        (
            [valeur] => hallyday
        )

    [3] => Array
        (
            [valeur] => jh
        )
)
je voudrais renomé le clé valeur pour obtenir
Array
(
    [0] => Array
        (
            [id] => 0056
        )

    [1] => Array
        (
            [nom] => johnny
        )

    [2] => Array
        (
            [prenom] => hallyday
        )

    [3] => Array
        (
            [age] => 44
        )
)
comment proceder avec le boucle foreach

merci de votre aide

Mammouth du PHP | 1339 Messages

12 janv. 2010, 20:01

<?php
	
	$key = array('id', 'nom', 'prenom', 'age'); // $arrayInitial c'est on array pas bon
	$newArray = array();
	for($i=0; $i<count($key); $i++) {
		$newArray[] = array($key[$i] => $arrayInitial[$i]['valeur']);
	}
	
	print_r($newArray);
	
?>
Bidouille mais ca marche :)
Bon sinon tu me fais un message privé et on se fait un TeamViewer

ViPHP
ViPHP | 1136 Messages

13 janv. 2010, 11:54

Salut ,

voilà une autre façon de faire avec le foreach sans creer de nouveau tableau :
$arr    =   array(
    array("valeur" => '0056'),
    array("valeur" => 'johnny'),
    array("valeur" => 'hallyday'),
    array("valeur" => 44)
    );


foreach( $arr as $key=>&$value){

    switch($key){

        case 0:

            $value  =   array("id"=>$value['valeur']);

        break;

        case 1:

            $value  =   array("nom"=>$value['valeur']);

        break;

        case 2:

            $value  =   array("prenom"=>$value['valeur']);

        break;

        case 3:

            $value  =   array("age"=>$value['valeur']);

        break;

        default:

        break;

    }


}

var_dump($arr);


Ch.

asdepki
Invité n'ayant pas de compte PHPfrance

13 janv. 2010, 12:08

voici une plus jolie :P
$tabCorrespondance = array('id','nom','prenom');
$newTab = array();
foreach($oldTab as $index=>$val)
{
   $newTab[$tabCorrespondance[$index]]=$val
}
encore merci


:)

ViPHP
ViPHP | 5462 Messages

13 janv. 2010, 17:09


Eléphant du PHP | 453 Messages

14 janv. 2010, 02:38

Hello
Arf, tu m'as enlevé les mots de la bouche. :)
La Tux attitude avec les kiw'z syou plait
Komodo Edit - Inkscape - Dia

ViPHP
ViPHP | 1136 Messages

14 janv. 2010, 09:56

Un petit exemple avec array_combine() et le problème posé messieurs ?

ça serai sympa :-)

Ch.

ViPHP
ViPHP | 5462 Messages

14 janv. 2010, 11:15

Un petit exemple avec array_combine() et le problème posé messieurs ?

ça serai sympa :-)

Ch.
enfaite c'est pas terrible celle d'asdepki est mieux
$arr = array(
            array("valeur" => '0056'),
            array("valeur" => 'johnny'),
            array("valeur" => 'hallyday'),
            array("valeur" => 44)
);
	
$keys = array('id', 'nom', 'prenom', 'age');
	
foreach($arr as $key => $item)
{
    $arr[$key] = current($item);
}
	
$array = array_combine($keys, $arr);
	
print_r($array);