Déplacer élément de tableau avec les clés à la première position dans un tableau PHP
Ce qui est la façon la plus élégante en PHP pour déplacer un élément de tableau choisi par clé à la première position?
D'entrée:
$arr[0]=0;
$arr[1]=1;
$arr[2]=2;
....
$arr[n]=n;
$key=10;
De sortie:
$arr[0]=10;
$arr[1]=0;
$arr[2]=1;
$arr[3]=2;
....
$arr[n]=n;
Dans l'exemple, vous n'êtes pas "le choix de l'élément de clé". Vous êtes juste à l'insertion d'une valeur arbitraire pour le début du tableau. Je pense que cela pourrait confondre d'autres personnes
Je pense que c'est implicite que $arr[10] a été déjà 10, et maintenant il va de $arr[9]=9 $arr[10]=11. Je suis d'accord que l'exemple n'a pas d'illustrer clairement. Il serait préférable de a) montrer l'élément de tableau est "déplacé", et b) l'utilisation de différentes valeurs d'élément de sorte qu'il est plus difficile de confondre une clé et sa valeur.
Il semble que le meilleur sera la bonne vieille méthode avec un tableau temporaire et du cycle de
Oui, je pense que vous avez raison, parce que la taille de
Je pense que c'est implicite que $arr[10] a été déjà 10, et maintenant il va de $arr[9]=9 $arr[10]=11. Je suis d'accord que l'exemple n'a pas d'illustrer clairement. Il serait préférable de a) montrer l'élément de tableau est "déplacé", et b) l'utilisation de différentes valeurs d'élément de sorte qu'il est plus difficile de confondre une clé et sa valeur.
Il semble que le meilleur sera la bonne vieille méthode avec un tableau temporaire et du cycle de
Oui, je pense que vous avez raison, parce que la taille de
$arr
reste le même $arr[n] = n
OriginalL'auteur user965748 | 2012-07-28
Vous devez vous connecter pour publier un commentaire.
Pas besoin de désactiver des clés. Garder court il suffit de faire comme suivre
Démo
OriginalL'auteur
Utilisation
array_unshift
:Ce qui n'a pas de travail? Quel a été le résultat?
Le même tableau, il semble que si il ne change pas les clés
merci de poster votre code.
oups edit: j'ai l'impression de clés, de me laisser tenter une fois de plus. Bien sûr qu'il fonctionne. Je suis désolé pour la confusion
OriginalL'auteur
Vieille question, et déjà répondu, mais si vous avez un tableau associatif, vous pouvez utiliser array_merge.
MODIFIÉ (ci-dessus pour montrer PHP7+ de notation ci-dessous est un exemple)
Le résultat positif de cette opération
N'est-ce pas le code copier l'élément au lieu de mobile?
Vous avez peut-être raison! N'est-ce pas dépend de la valeur dans le tableau, si? Si c'est scalaire, il peut le copier, mais si il est une valeur de référence, alors ne serait-il pas seulement de copier la référence et non pas la valeur? (J'ai peut-être tort, mais je ne pense pas que l'OP a été de demander plus sur la modification de la valeur dans une variable de tableau que le sous-jacent de l'informatique fondamentaux du mouvement contre la copie une valeur dans la mémoire. 🙂 )
OriginalL'auteur
Quelque chose comme cela devrait fonctionner. Vérifiez si la clé du tableau existe, obtenir sa valeur, puis
unset
, puis l'utiliserarray_unshift
pour créer à nouveau l'élément et le placer au début.OriginalL'auteur
Droit, octern déjà dit que
OriginalL'auteur
OriginalL'auteur
Depuis n'importe quelle touche numérique serait ré-indexé avec
array_unshift
(comme indiqué dans la doc), il est préférable d'utiliser le+
de la matrice de l'union de l'opérateur pour déplacer un élément avec une certaine touche à la première position d'un tableau:OriginalL'auteur
Après ce simple code, tout ce que vous devez faire, c'est afficher la ré-arrangé tableau. 🙂
OriginalL'auteur