98 votes

Existe-t-il des dictionnaires en php ?

Par exemple :

$names = {[bob:27, billy:43, sam:76]};

et ensuite être capable de le référencer comme ceci :

 $names[bob]

1 votes

Définissez "dictionnaire". Faites-vous référence à un simple tableau associatif ?

0 votes

Si vous placez/récupérez les données d'une base de données, ne chercheriez-vous pas plutôt un dictionnaire pour une base de données ?

0 votes

Oui, c'est exactement ce à quoi je fais référence. et je n'y ai jamais pensé ....lol

118voto

Jacob Points 17521

http://php.net/manual/en/language.types.array.php

<?php
$array = array(
    "foo" => "bar",
    "bar" => "foo",
);

// as of PHP 5.4
$array = [
    "foo" => "bar",
    "bar" => "foo",
];
?>

Les tableaux standard peuvent être utilisés de cette façon.

0 votes

Le problème avec les tableaux est que lorsque je les trie(), j'ai besoin de conserver l'index, qui est la clé de la base de données, afin de pouvoir réinterroger cette valeur.

2 votes

Voir cette page : php.net/manual/fr/array.sorting.php . Il existe plus de 20 méthodes de tri en PHP ;-). Vous aurez probablement besoin de ksort .

2 votes

@Felix : Oui, je voulais dire celui-là ;-) asort est meilleur dans ce cas :-)

17voto

Brént Russęll Points 112

Non, il n'y a pas de dictionnaire en php. La chose la plus proche que vous ayez est un tableau. Cependant, un tableau est différent d'un dictionnaire dans la mesure où les tableaux ont à la fois un index et une clé. Les dictionnaires n'ont que des clés et pas d'index. Qu'est-ce que je veux dire par là ?

$array = array(
    "foo" => "bar",
    "bar" => "foo"
);

// as of PHP 5.4
$array = [
    "foo" => "bar",
    "bar" => "foo",
];

La ligne suivante est autorisée avec le tableau ci-dessus mais donnerait une erreur s'il s'agissait d'un dictionnaire.

print $array[0]

Python dispose à la fois de tableaux et de dictionnaires.

4voto

Khageshwor Points 262

Les tableaux associatifs en PHP sont considérés comme des dictionnaires.

Un tableau en PHP est en fait une carte ordonnée. Une carte est un type qui associe des valeurs à des clés. Elle peut être traitée comme un tableau, une liste (vecteur), une table de hachage (une implémentation d'une carte), dictionnaire , collection, pile, file d'attente, et probablement plus encore.

<?php
$array = array(
    "foo" => "bar",
    "bar" => "foo",
);

// Using the short array syntax
$array = [
    "foo" => "bar",
    "bar" => "foo",
];
?>

Un tableau est différent d'un dictionnaire dans la mesure où les tableaux ont à la fois un index et une clé. Les dictionnaires n'ont que des clés et pas d'index.

1voto

Jsowa Points 4130

Normal array peut servir de structure de données de dictionnaire. En général, il a des usages multiples : tableau, liste (vecteur), table de hachage, dictionnaire, collection, pile, queue, etc.

$names = [
    'bob' => 27,
    'billy' => 43,
    'sam' => 76,
];

$names['bob'];

Et en raison de sa conception large, il ne bénéficie pas de tous les avantages d'une structure de données spécifique. Vous pouvez implémenter votre propre dictionnaire en étendant une structure de données de type ArrayObject ou vous pouvez utiliser SplObjectStorage qui est une implémentation de carte (dictionnaire) permettant d'assigner des objets comme clés.

0voto

Mateja Points 276

Utilisez des tableaux :

<?php

$arr = [
    "key" => "value",
    "key2" => "value2"
];

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X