Gibt es Wörterbücher in PHP?

84

Zum Beispiel:

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

und dann in der Lage sein, es so zu referenzieren:

 $names[bob]
bzupnick
quelle
1
Definieren Sie "Wörterbuch". Beziehen Sie sich auf ein einfaches assoziatives Array?
Jerluc
Wenn Sie die Daten aus einer Datenbank platzieren / abrufen, suchen Sie dann nicht stattdessen nach einem Wörterbuch für eine Datenbank?
Niklas
yeh, das ist genau das, worauf ich mich beziehe. und idk, ich habe nicht darüber nachgedacht ... lol
bzupnick
@cularis hat Ihre Antwort dann
jerluc
1
@bzupnick dann solltest du sie sortieren .
Chiffre

Antworten:

102

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",
];
?>

Auf diese Weise können Standard-Arrays verwendet werden.

Jakob
quelle
Das Problem mit Arrays ist, dass ich, wenn ich sie sortiere (), den Index behalten muss, der der DB-Schlüssel ist, damit ich diesen Wert erneut abfragen kann
bzupnick
2
Siehe diese Seite: php.net/manual/en/array.sorting.php . Es gibt über 20 Sortiermethoden in PHP ;-). Sie werden wahrscheinlich brauchen ksort.
Grad van Horck
2
@ Felix: Ja. Ich meinte das eine ;-) asort ist in diesem Fall besser. :-)
Grad van Horck
oder arsort yeh? weil ich am höchsten sein muss, um oben zu sein
bzupnick
2
Hatte einen Mitarbeiter angefangen, in PHP mit einem C-Hintergrund zu arbeiten. Er fragte mich, wie man ein Wörterbuch in PHP macht, und ich sagte, wtf ist ein Wörterbuch o_o Jetzt weiß ich
Captain Hypertext
14

Nein, es gibt keine Wörterbücher in PHP. Das nächste, was Sie haben, ist ein Array. Ein Array unterscheidet sich jedoch von einem Wörterbuch darin, dass Arrays sowohl einen Index als auch einen Schlüssel haben. Wörterbücher haben nur Schlüssel und keinen Index. Was meine ich damit?

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

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

Die folgende Zeile ist mit dem obigen Array zulässig, würde jedoch einen Fehler ausgeben, wenn es sich um ein Wörterbuch handelt.

print $array[0]

Python hat sowohl Arrays als auch Wörterbücher.

Brént Russęll
quelle
0

Normal arraykann als Wörterbuchdatenstruktur dienen. Im Allgemeinen wird es für mehrere Zwecke verwendet: Array, Liste (Vektor), Hash-Tabelle, Wörterbuch, Sammlung, Stapel, Warteschlange usw.

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

$names['bob'];

Und aufgrund des breiten Designs werden die Vorteile einer bestimmten Datenstruktur nicht voll ausgeschöpft. Sie können Ihr eigenes Wörterbuch implementieren, indem Sie eine erweitern, ArrayObjectoder Sie können eine SplObjectStorageKlasse verwenden, bei der es sich um eine Kartenimplementierung (Wörterbuchimplementierung) handelt, mit der Objekte als Schlüssel zugewiesen werden können.

Tajni
quelle