2014-05-06 5 views
0

J'ai un tableau qui est multidimensionnel comme celui-ciPHP - Convertir tableau multidimensionnel pour tableau 2D

array(
    0 => array(
     'User' => array(
       'email' => '[email protected] ,[email protected]', 
       'username' => 'test,testuser', 
       'description' => 'description1,description2' 
       ) 
     ) 
); 

Je veux convertir ce tableau dans ce formulaire

$User = array(
    'email' => array(
     '[email protected]', 
     '[email protected]' 
    ), 
    'username' => array(
     'test', 
     'testuser' 
    ), 
    'description' => array(
     'description1', 
     'description2' 
    ) 
); 

S'il vous plaît besoin d'aide !!!.

+3

cette mise en forme est conseillé de lire l'article d'aide afin de recevoir de l'aide: http://stackoverflow.com/editing-help#syntax-highlighting –

+0

Avez-vous essayé quoi que ce soit? vous pourriez vouloir vérifier le 'explode' de php –

+0

L'aide est en lisant quelques manuels –

Répondre

7

Pour un seul indice:

$arrayTwoD = array(); 
foreach ($valueMult[0]['User'] as $key => $value) { 
    $arrayTwoD[$key] = array_push(explode(',', $value)); 
} 

Si vous avez plusieurs index dans $multArray:

$arrayTwoD = array(); 
foreach ($multArray as $keyMult => $valueMult) { 
    foreach ($valueMult['User'] as $key => $value) { 
     $arrayTwoD[$keyMult][$key] = array_push(explode(',', $value)); 
    } 
} 

ou

$arrayTwoD = array(); 
foreach ($multArray as $array) { 
    foreach ($array['User'] as $key => $value) { 
     $arrayTwoD[$key] = array_push(explode(',', $value)); 
    } 
} 
+1

C'est parfait en fait. +1 –

+1

Merci @ ShankDamodaran;) –

+0

cela ne fonctionne que si le multi-tableau a une seule entrée – Dwza

2

essayer cette

$array = array(...); // your array data 
$formedArray = array(); 

foreach ($array as $arr) 
{ 
    foreach ($arr['user'] as $key => $value) 
    { 
     $formedArray[$key] = array_push(explode(",",$value)); 
    } 
} 

echo "<pre>"; 
print_r($formedArray); 
echo "</pre>"; 
1

Il est un peu répétitif, je sais, mais vous pouvez faire comme cela aussi:

foreach($array as $users) { 
    foreach($users as &$value) { // &value is assigned by reference 
     $users['users']["email"] = explode(",", $value['email']); 
     $users['users']["username"] = explode(",", $value['username']); 
     $users['users']["description"] = explode(",", $value['description']); 
    } 
} 

Mais après cela, vous devez utiliser $value. Reportez-vous au PHP manual documentation officiel pour en savoir plus sur ce que fait le symbole & ici.

Demo

+0

si vous ne remplaceriez pas vos résultats à chaque fois, vous auriez une mauvaise chose ici ... parce que vous manipulez la matrice de base foreach à chaque fois ... cette onley fonctionne parce qu'il n'y a pas beaucoup de données ET parce que vous l'annulez tout le temps ... si vous l'empêchiez de surcharger ... cela pourrait se terminer par une boucle sans fin – Dwza