Maison  >  Article  >  développement back-end  >  Comment démarrer l'indice du tableau PHP à partir de 1

Comment démarrer l'indice du tableau PHP à partir de 1

PHPz
PHPzoriginal
2023-04-18 14:08:521502parcourir

En PHP, les indices du tableau par défaut commencent à 0. Cependant, dans certains scénarios, il peut être nécessaire de modifier l'indice du tableau pour qu'il commence à 1. Cet article présentera 3 méthodes pour répondre à cette exigence.

Méthode 1 : Modifier manuellement l'indice du tableau

La modification manuelle de l'indice du tableau est la méthode la plus simple. Lors de la définition du tableau et du remplissage des données, augmentez simplement l'indice à partir de 1. Par exemple :

$arr = array(
    1 => '第一个元素',
    2 => '第二个元素',
    3 => '第三个元素'
);

Après un traitement de cette manière, les indices du tableau deviennent 1, 2 et 3.

Il convient de noter que lorsque vous modifiez l'indice du tableau pour qu'il commence à partir de 1, vous devez spécifier manuellement l'indice. Le tableau ne peut pas être rempli de la manière par défaut, sinon l'indice commencera toujours à 0.

Méthode 2 : Modifier le pointeur du tableau

En PHP, vous pouvez utiliser la fonction reset pour réinitialiser le pointeur du tableau sur le premier élément, et la fonction end pour déplacer le pointeur du tableau vers le dernier élément. Si vous pouvez déplacer le pointeur du tableau vers -1, c'est-à-dire devant le 0ème élément, vous pouvez modifier l'indice du tableau pour qu'il commence à 1.

Exemple de code :

$arr = array('第一个元素', '第二个元素', '第三个元素');
end($arr);     // 移动到最后一个元素
$idx = key($arr);     // 保存最后一个元素的下标
reset($arr);     // 将指针重置到第一个元素
$i = 0;
while(key($arr) !== $idx) {
    $i++;
    next($arr);     // 指针后移
    $arr_new[$i] = current($arr);     // 保存当前元素到新数组
}
$arr_new[1] = $arr[0];     // 将第0个元素移动到下标为1的位置

Le code ci-dessus changera l'indice du tableau $arr pour qu'il commence à 1.

Il est à noter que cette méthode est relativement peu efficace car elle nécessite de déplacer le pointeur plusieurs fois. Et si le 0ème élément du tableau existe, un traitement spécial est requis.

Méthode 3 : Utilisez la fonction array_combine

La fonction array_combine peut utiliser un tableau comme indice et un autre tableau comme valeur pour créer un nouveau tableau associatif. Si vous utilisez 0, 1, 2 et 3 comme tableau d'indices et la valeur du tableau d'origine comme tableau de valeurs, vous pouvez modifier l'indice pour qu'il commence à 1.

Exemple de code :

$arr = array('第一个元素', '第二个元素', '第三个元素');
$arr_new = array_combine(range(1, count($arr)), $arr);

Le code ci-dessus créera un nouveau tableau $arr_new, dont les indices commencent à 1.

Il est à noter que la longueur du tableau généré par la fonction range doit être la même que la longueur du tableau d'origine. Si les longueurs des deux tableaux ne correspondent pas, un avertissement est généré. De plus, cette approche ne fonctionne qu'avec des tableaux associatifs. Pour les tableaux indexés ordinaires, les indices du tableau peuvent être réorganisés.

Résumé

Il peut être nécessaire de démarrer l'indice du tableau PHP à partir de 1. Parmi les trois méthodes, la modification manuelle de l'indice du tableau est la manière la plus intuitive et la plus performante bien que la méthode de changement du pointeur du tableau soit réalisable ; l'efficacité est faible et le champ d'application est limité ; l'utilisation de la fonction array_combine est également une meilleure méthode, mais son champ d'application est plus étroit et ne s'applique qu'aux tableaux associatifs. Il est nécessaire de choisir la méthode appropriée pour répondre aux besoins en fonction de la situation réelle.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn