PHP un tableau associatif avec les touches (index) limites?
Si il y a une sorte de limitations pour les clés du tableau en PHP ? Longueur ? Pas acceptable cordes ?
Dans le la documentation officielle trouvé seulement cela, mais il n'existe aucune information sur les touches limites.
Une clé peut être un entier ou une chaîne de caractères. Si une clé est la représentation standard d'un nombre entier, il sera interprété en tant que tel (c'est à dire "8" sera interprété comme 8, tandis que la "08" sera interprété comme "08"). Flotte dans les principaux sont tronqués à l'entier. Les index et tableau associatif types sont du même type en PHP, qui peut à la fois contenir entier et une chaîne d'indices.*
OriginalL'auteur Fedir RYKHTIK | 2012-02-29
Vous devez vous connecter pour publier un commentaire.
Ce qui est le max de la taille d'un tableau en PHP?
Cette question est presque exactement la même. Mais si vous ne voulez pas faire confiance à rien non officiel, il suffit de coller à l'aide de moins de petites touches. Vous pouvez même obtenir certains avantages de performance.
EDIT: Et que la Le Manuel PHP dit:
Les chaînes n'ont pas de caractères interdits. Cependant, soyez conscient de la barre oblique inverse dans les cordes, comme il échappera à la lettre suivante.
Moins d'un pour citant le "pas de problème pour les longues chaînes" note en PHP docs. Cela ne veut pas nécessairement dire que de longues clés dans un tableau ne sont pas un problème, pour la performance ou pour d'autres raisons. C'est peut-être vrai, mais que la cité note ne veut pas dire que.
OriginalL'auteur MichaelH
Toute chaîne de caractères utilisé comme une clé dans un tableau est haché. Analogue à md5() et sha1() ce hachage réduit (potentiellement giga-octets de caractères d'une longueur connue. contrairement à md5() ou sha1() la matrice interne du mécanisme de hachage permet de transformer votre chaîne en un entier, il peut ensuite utiliser à l'adresse d'un seau à l'intérieur de la matrice. PHP tableaux ne sont pas de vrai/réel des tableaux - ils sont une sorte de table de hachage Liée à l'interne. Considérant que plusieurs chaînes de caractères peuvent boild vers le bas pour le même hash, chaque seau est une liste elle-même. Si il y a plusieurs éléments dans le même compartiment, chaque clé doit être évaluée. Il va sans dire que des clés courtes sont comparativement plus rapide que 1 MO de texte.
TL;DR: même si vous n'êtes pas limité par PHP, vous devez vous limiter. Si vous avez assez longues chaînes, envisager de les exécuter à travers md5() ou sha1() (ou toute autre fonction de hachage, en fait) pour réduire la longueur de la clé.
N'avez-vous pas le genre de contraddict vous-même? Si les chaînes sont haché en interne, pourquoi ne devriez-vous hachage "assez longue" chaîne? Ne pas mentionner que vous perdriez théorique de la garantie de l'unicité (et donc que faites-vous? avez-vous réinventer l'ensemble de la structure de données, avec des listes, etc?) Votre TL;DR partie semble contraddict le premier paragraphe et je ne vois pas du tout le raisonnement derrière elle.
OriginalL'auteur rodneyrehm
êtes-vous sûr que vous êtes en référence à la clé? ou voulez-vous dire?
avec des tableaux associatifs :
$array = new array(
new array(
"key"=>"valeur"
)
);
.. comme pour la clé je pense qu'en théorie, il n'y a pas de limites à la longueur cependant .. choisissant long des clés n'est pas une bonne idée si vous aurez envie de reusre beaucoup..
que pour les valeurs que vous faut juste prendre un butin à des tableaux, en général, et quels types de données sont autorisés et d'autres choses..
espère que cela aide..
OriginalL'auteur tycho martins