Enlever une dimension à un tableau

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

21 sept. 2006, 10:42

Pour changer, c'est moi qui ai une question.

J'ai un tableau à 2 dimensions que je veux réduire à une seule dimension.
A savoir, pour le moment j'ai

$tab[0][0][employe_id]
$tab[0][0][nom]
$tab[1][0][employe_id]
$tab[1][0][nom]
Et je voudrais

$tab[0][employe_id]
$tab[0][nom]
$tab[1][employe_id]
$tab[1][nom]

Voici mon tableau

Code : Tout sélectionner

array(5) { [0]=> array(1) { [0]=> array(5) { ["employe_id"]=> string(32) "1" ["employe_nom"]=> string(14) "NOM Prénom" ["superieur_id"]=> NULL } } [1]=> array(1) { [0]=> array(5) { ["employe_id"]=> string(32) "2" ["employe_nom"]=> string(14) "NOM Prénom" ["superieur_id"]=> string(32) "4" } } [2]=> array(1) { [0]=> array(5) { ["employe_id"]=> string(32) "3" ["employe_nom"]=> string(11) "NOM Prénom" ["superieur_id"]=> string(32) "5" } } [3]=> array(1) { [0]=> array(5) { ["employe_id"]=> string(32) "4" ["employe_nom"]=> string(10) "NOM Prénom" ["superieur_id"]=> NULL } } [4]=> array(1) { [0]=> array(5) { ["employe_id"]=> string(32) "5" ["employe_nom"]=> string(11) "NOM Prénom" ["superieur_id"]=> string(32) "45" } } }
Et je souhaite avoir directement :

Code : Tout sélectionner

array(5) { [0]=> array(5) { ["employe_id"]=> string(32) "1" ["employe_nom"]=> string(13) "NOM Prenom" ["superieur_id"]=> NULL } [1]=> array(5) { ["employe_id"]=> string(32) "2" ["employe_nom"]=> string(16) "NOM Prenom" ["superieur_id"]=> NULL } [2]=> array(5) { ["employe_id"]=> string(32) "3" ["employe_nom"]=> string(23) "NOM Prenom" ["superieur_id"]=> NULL } [3]=> array(5) { ["employe_id"]=> string(32) "4" ["employe_nom"]=> string(17) "NOM Prenom" ["superieur_id"]=> NULL } [4]=> array(5) { ["employe_id"]=> string(32) "5" ["employe_nom"]=> string(19) "NOM Prenom" ["superieur_id"]=> NULL } }
Comment feriez vous ?
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

21 sept. 2006, 11:10

Moi je tenterai bien quelque chose du genre:
<?php
foreach($tab as $tab1 => $val1){
    foreach($val as $tab2 => $val2) {
        foreach($val2 as $tab3 => $val3) {
            $new_tab[$tab1][$tab3]=$val3;
        }
    }
}

print_r($new_tab);
?>
Quand tout le reste a échoué, lisez le mode d'emploi...

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

21 sept. 2006, 11:15

Oh, cela me convient, en fait : merci beaucoup.
J'espérais, comme à chaque fois, pouvoir utiliser les fonctions natives de PHP (array_chunk(), array_shift(), etc...) mais je ne m'en sers jamais !
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.