2008-12-03 8 views

Répondre

38
someproperty[] = a 
someproperty[] = b 
someproperty[] = c 
someproperty[] = d 
someproperty[] = e 

voir: http://us.php.net/manual/en/function.parse-ini-file.php#75983

+2

Et est-il possible de le faire pour (les valeurs si someproperty peut-être un hachage/multidimensionnel de tableau) multidimensionnels? – Akeem

+5

J'ai rencontré un problème aujourd'hui où cette syntaxe ne fonctionnera pas correctement si une [section] n'est pas définie en haut du fichier ini. Je ne sais pas si c'est un bug, mais ça vaut vraiment le coup d'être noté! – Tom

+0

@Tom: merci de l'avoir signalé, m'a donné du fil à retordre - je considérerais certainement cela comme un bug! – Select0r

6

Vous pouvez utiliser des séparateurs pour faire d'autres sous-sections, et ils sont présentés comme étant un autre niveau d'objets ($ config-> quelque> a) ou avec config- de $ > toArray(), ils peuvent être transformés en un tableau à plusieurs niveaux.

La combinaison des deux techniques ci-dessus pour faire des tableaux, et les séparateurs comme ceci:

some.a[] = a 
some.a[] = b 
some.b[] = c 

donnera les résultats que vous recherchez.

array('some' => array('a' => array(0 => 'a', 
            1 => 'b'), 
         'b' => array(0 => 'c') 
        )); 
+2

La syntaxe pointée ne fonctionnera pas pour la construction de PHP dans la fonction 'parse-ini-file'. La syntaxe square-bracket ne fonctionnera que pour les tableaux unidimensionnels. – feeela

7

Bien que sans papier, cela semble fonctionner assez bien aussi:

foo[bar] = 5 
foo[baz] = 6 
hello[world] = 7 
+0

Cela fonctionne pour moi aussi. Vous devrez faire '$ config-> get ('the_key') -> toArray()' pour l'utiliser comme tableau en PHP. – Chris

+0

Ce n'est plus non documenté. Les tableaux avec des index vides et des indices de chaînes sont couverts dans les exemples de 'parse_ini_file()'. Voir: http://us.php.net/manual/fr/function.parse-ini-file.php –

Questions connexes