modifie tableau multidimensionnel

Petit nouveau ! | 3 Messages

24 nov. 2010, 12:08

Bonjour

J'ai un tableau :

Array
(
[0] => Array
(
[0] =>
)

[1] => Array
(
[0] => 44
[1] => 3
)

[2] => Array
(
[0] => 44
[1] => 4
)

[3] => Array
(
[0] => 44
[1] => 7
)

[4] => Array
(
[0] => 45
[1] => 3
)

[5] => Array
(
[0] => 45
[1] => 4
)

)

Pour pouvoir l'utiliser j'ai besoin de le transformer pour avoir le résultat suivant :

Array
(
[0] => Array
(
[0] =>
)

[1] => Array
(
[0] => 44
[1] => 3
[2] => 4
[3] => 7
)

[2] => Array
(
[0] => 45
[1] => 3
[2] => 4
)

)

J'ai tourné le probleme dans tous les sens (à mon niveau :( ) Impossible pour moi d'arriver à ce résultat.
Si quelqu'un à une idée je suis preneur !

ViPHP
ViPHP | 5462 Messages

24 nov. 2010, 12:11

fais un var_export de ton tableau

Petit nouveau ! | 3 Messages

24 nov. 2010, 12:32

Voici le var_export du tableau :

array ( 0 => array ( 0 => '', ), 1 => array ( 0 => '44', 1 => '3', ), 2 => array ( 0 => '44', 1 => '4', ), 3 => array ( 0 => '44', 1 => '7', ), 4 => array ( 0 => '45', 1 => '2', ), 5 => array ( 0 => '45', 1 => '3', ), )

Pour pouvoir utiliser les résultats j'ai besoin de le transformer comme ceci :
array ( 0 => array ( 0 => '', ), 1 => array ( 0 => '44', 1 => '3', 2 => '4', 3 => '7', ), 2 => array ( 0 => '45', 1 => '2', 2 => '3',), )

Peut être que ce n'est pas possible :(

ViPHP
ViPHP | 5462 Messages

24 nov. 2010, 12:42

en vite fais je dirais comme ca :
$arr = array ( 0 => array ( 0 => '', ), 1 => array ( 0 => '44', 1 => '3', ), 2 => array ( 0 => '44', 1 => '4', ), 3 => array ( 0 => '44', 1 => '7', ), 4 => array ( 0 => '45', 1 => '2', ), 5 => array ( 0 => '45', 1 => '3', ), );

$arr2 = array();

foreach($arr as $item)
{    
    $arr2[$item[0]][0] = $item[0];
    
    if(!empty($item[1]))
    {
        $arr2[$item[0]][]  = $item[1];
    }
}

$arr3 = array_values($arr2);

print_r($arr3);
mais elle viens d'où ta liste d'une base ?

Petit nouveau ! | 3 Messages

24 nov. 2010, 13:12

merci, merci ca fonctionne nickel =D>

Ce tableau ne vient pas d'une base.
J'ai un site marchand sur lequel les produits sont présentés en tableau. Dans les colonnes les quantités et dans les lignes les formats.
J'ai plusieurs groupes clients qui ont des prix différents.
Et certain groupe client ne peuvent pas acheter certaines quantités.

Donc dans mon tableau le 44 et le 45 représentent des colonnes pour un produit et le 2,3 et 3,4,7 des groupes clients qui ne verront pas les colonnes 44 et 45 pour un produit.
Les valeurs des colonnes viennent d'un champ caché et les groupes clients de checkbox.

Voilà pour la petite explication, j'espére qu'elle est aussi claire que votre code qui était parfait.