2010-10-28 11 views
2

J'essaie de stocker des valeurs en PHP, comme un HashTable avec plusieurs clés. Par exemple, je suis, je veux que ce retour de deux valeurs différentes:Stockage des valeurs dans PHP

$value1=$content['var1']['var2']['var3']['typea']; 

$value2=$content['var1']['var2']['var3']['typeb']; 

Quelle serait la meilleure façon de s'y prendre pour mettre en œuvre une fonction comme celui-ci?

+0

Quelle est la question exactement? Comment créer un tableau associatif avec plusieurs niveaux de profondeur? –

+0

puis mettre en œuvre de cette façon? – nerkn

+0

Oui, ou s'il y a autre chose que je devrais utiliser en plus des tableaux. –

Répondre

1

Vous pouvez définir des valeurs de la même manière que vous les obtenez.

$content['var1']['var2']['var3']['typea'] = $value1; 
$content['var1']['var2']['var3']['typeb'] = $value2; 
0

Vous pouvez profiter de PHP étant un langage de script dynamique en le laissant créer votre structure de réseau souhaitée automatiquement:

$content['var1']['var2']['var3']['typea'] = "value1"; 
3

Au lieu de construire un tableau complexe, que diriez-vous de définir et utiliser un simple classe à la place? Exemple:

<?php 
class beer { 
    var $brand; 
    var $ounces; 
    var $container; 
} 

$mybeer = new beer(); 
$mybeer->brand = "Coors"; 
$mybeer->ounces = 12; 
$mybeer->container = "can"; 

echo $mybeer->brand; 
echo $mybeer->ounces; 
echo $mybeer->container; 
?> 
0

Une manière serait de créer une clé unique basée sur les différentes clés et de la stocker dans un grand tableau.

Au lieu de cela,

$value1=$content['var1']['var2']['var3']['typea']; 

vous auriez quelque chose comme ça ...

$contentKey = generateKey("var1", "var2", "var3", "typeA"); 
$value1 = $content[$contentKey]; 

generateKey ferait quelque chose comme hash les différentes entrées, ou les enchaîner avec quelques-uns uniques délimiteur comme un trait de soulignement quadruple. Cela nécessiterait moins de recherches de tableaux que les autres solutions, et (à mon avis) est plus facile à lire.