2010-10-27 7 views
0

J'ai ce tableau que je veux obtenir les valeurs "ABC", "1", "2" et ainsi de suite et les stocker dans des variables séparées. Je l'ai utilisé foreach imbriqué mais n'a pas pu l'obtenirComment parcourir cette boucle Obtenir chaque élément séparément

array(2) { 
     [0] => array(3) { 
      [0] => string(10) "ABC" 
      [1] => string(1) "1" 
      [2] => string(2) "2" 
    } [1] => array(3) { 
      [0] => string(10) "BCD118" 
      [1] => string(1) "1" 
      [2] => string(2) "9" 
    } 
    } 
+0

Comment voulez-vous appeler vos variables, devraient-ils écraser les variables existantes, et pourquoi voudriez-vous convertir un tel tableau facilement accessible et structuré à un tas de scalaires sans rapport (quel problème essayez-vous de résoudre par cette action)? – Wrikken

Répondre

2

Sur la base de votre _SESSION $ commentaire à Mike C ,

foreach($outer_array as $outer_key => $inner_array) 
{ 
    foreach($inner_array as $key => $value) 
    { 
     $_SESSION[$outer_key.'-'.$key] = $value; 
    } 
} 

Vous auriez besoin de clés uniques ou (par exemple) 'BCD118' et 'ABC' seraient toutes deux la clé 0 et donc 'ABC' serait écrasé.

Modifier Vous pouvez ajouter le $outer_key à la $key intérieure pour obtenir une expérience unique _SESSION clé

$ Ceci produirait des paires clé/valeur

0-0 : ABC 
0-1 : 1 
0-2 : 2 
1-0 : BCD118 
1-1 : 1 
2-2 : 9 
+0

@brianD: Comment puis-je surmonter cette situation – Someone

+0

J'ai édité ma réponse pour montrer une voie possible –

+0

@braind: J'ai ma fonction de session personnalisée disponible alors quand iam en boucle je dois l'assigner seulement à la valeur .So dans ce tableau j'ai besoin d'obtenir chaque touche de valeur [ 0] [0] devrait me donner "ABC" afin que je puisse mettre la valeur ABC à un champ – Someone

0

Votre tableau est de dimensions [2] [3], de sorte que vous devriez être en mesure de le faire:

for($i = 0; $i < 2; $i++)
{
for($o = 0; $o < 3; $o++)
{
$variable = $array[$i][$o];
}
}

ou équivalent expression avec des instructions foreach, en fonction de ce que vous essayez d'accomplir.

Il y a bien sûr des limitations à cela, car vous ne pouvez vraiment écrire que dans un autre tableau. Pour les obtenir dans des variables séparées, vous devrez juste les référencer statiquement.

1

Avec boucles foreach ...

foreach ($array as $key=>$value) 
{ 
    foreach ($array[$key] as $subkey=>$subvalue) 
    { 
     echo "$subkey $subvalue\n"; 
    } 
} 
+0

Comment assigner le nom de la clé avec une chaîne et sa valeur et mettre dans une session – Someone

+0

Voir la réponse de brian d' –

4

Vous pouvez utiliser un recursiveiteratoriterator:

$it = new RecursiveIteratorIterator(new RecursiveArrayIterator($array)); 

foreach ($it as $key => $value) { 
    echo $key . " - " . $value."\n"; 
} 

Souhaitez-vous donner:

0 - ABC 
1 - 1 
2 - 2 
0 - BCD118 
1 - 1 
2 - 9 
+0

+1 pour l'utilisation SPL. OO puissance !! ;) – xPheRe

+0

Comment puis-je résoudre ce problème "Vous auriez besoin de touches uniques ou (par exemple)" BCD118 "et" ABC "seraient tous deux la clé 0 et donc" ABC "serait écrasé" – Someone

Questions connexes