Comment puis-je réindexer un tableau avec des valeurs de clé entières négatives afin que l'élément 0,1,2,3,-1 soit trié à -1,0,1,2,3 puis renuméroté à 0,1,2,3 ,4?
P粉198670603
P粉198670603 2023-09-12 12:09:51
0
2
649

Supposons que j'ai ceci :

$arr = [];
$arr[0] = 'second';
$arr[-1] = 'first';

Comment le changer en $arr[0 => 'first', 1 => 'second']

C'est le meilleur que j'ai trouvé :

$new = [];
foreach ($arr as $key => $value) {
    $new[$key + 1] = $value;
}

ksort($new);

Mais comme pour les tableaux en php, je me demande s'il existe réellement une simple fonction intégrée que je peux utiliser ?

P粉198670603
P粉198670603

répondre à tous(2)
P粉441076405

Je ne peux m'empêcher de me demander si votre objectif est simplement d'insérer une valeur au début du tableau, c'est peut-être ce que vous recherchez array_unshift() ?

Donc au lieu de

$arr[-1] = 'first';

... alors triez, vous pouvez faire ça

array_unshift($arr, 'first');

Ce sera à l'index 0 处插入 'first' et déplacera chaque élément existant, indexé numériquement dans le tableau, vers le haut d'un.

P粉107991030

Utilisez ksort pour trier le tableau, puis appliquez-y array_values. Il réindexera les clés à partir de 0 :

$arr = [];
$arr[0] = 'second';
$arr[-1] = 'first';

ksort($arr);
$result = array_values($arr);
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal