Je regarde le manuel PHP et je ne vois pas de section sur les structures de données que la plupart des langages ont, telles que les listes et les ensembles. Suis-je simplement aveugle ou PHP n'a-t-il rien de tel intégré?
Réponses
Trop de publicités?PHP offre des structures de données par le biais de la Standard PHP Library (SPL) prorogation de base, qui est disponible et compilé par défaut en PHP 5.0.0.
Les structures de données sont disponibles avec PHP 5 >= 5.3.0, et comprend:
Doublement Des Listes Liées
Une Liste Doublement chaînée (DLL) est une liste de nœuds liés les uns aux autres. Itérateur des opérations, l'accès aux deux extrémités, l'ajout ou la suppression de nœuds ont un coût de O(1) lorsque la structure sous-jacente est une DLL. Il fournit donc un décent de mise en œuvre pour les piles et les files d'attente.
Des tas
Des tas sont des structures arborescentes qui suivent le tas de propriété: chaque nœud est supérieure ou égale à ses enfants, lorsque comparées à l'aide de la mise en œuvre de la méthode de comparaison qui est mondial sur le segment.
Les tableaux
Les tableaux sont des structures qui stockent les données en continu, accessible via l'index. Ne les confondez pas avec les tableaux PHP: PHP les tableaux sont en fait mis en œuvre, comme l'a ordonné tables de hachage.
Carte
Une carte est une discbased la tenue de paires clé-valeur. Les tableaux PHP peuvent être vus comme des cartes à partir de nombres entiers/chaînes de valeurs. SPL fournit une carte à partir d'objets de données. Cette carte peut également être utilisé comme un objet défini.
Le tableau associatif peut être utilisé pour la plupart des structures de base de données de table de hachage, file, pile. Mais si vous voulez quelque chose comme un arbre ou d'un segment de mémoire je ne pense pas qu'ils existent par défaut, mais je suis sûr qu'il existe des bibliothèques de n'importe où.
Pour avoir un tableau d'émuler une utilisation de la pile array_push()
ajouter et array_pop()
à décoller
Pour avoir un tableau d'émuler une file d'attente d'utilisation array_push()
de la file et array_shift()
à la résorption de l'
Un tableau associatif est un hachage par défaut. En PHP, ils sont autorisés à avoir les chaînes de caractères comme des indices si cela fonctionne comme prévu:
$array['key'] = 'value';
Enfin, vous pouvez émuler un arbre binaire avec d'un tableau avec la possibilité d'avoir gaspillé de l'espace. Utile si vous savez que vous allez avoir un petit arbre. À l'aide d'un tableau linéaire, dites-vous, pour tout indice (i) mettre sa gauche l'enfant à l'index (2i+1) et le droit de l'enfant à l'index (2i+2).
Toutes ces méthodes sont couverts joliment dans cet article sur la façon de faire les tableaux JavaScript émuler niveau plus élevé de structures de données.
PHP a des tableaux qui sont en fait des tableaux associatifs et peuvent également être utilisés comme ensembles. Comme de nombreux langages interprétés, PHP offre tout cela sous un seul capot au lieu de fournir différents types de données explicites.
Par exemple
$lst = array(1, 2, 3);
$hsh = array(1 => "This", 2 => "is a", 3 => "test");
/ Edit: Jetez également un œil au manuel .
Le tableau de PHP se double d'une liste et d'un dictionnaire.
$myArray = array("Apples", "Oranges", "Pears");
$myScalar = $myArray[0] // == "Apples"
Ou pour l'utiliser comme un tableau associatif:
$myArray = array("a"=>"Apples", "b"=>"Oranges", "c"=>"Pears");
$myScalar = $myArray["a"] // == "Apples"