recherche

Maison  >  Questions et réponses  >  le corps du texte

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?

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粉198670603P粉198670603457 Il y a quelques jours640

répondre à tous(2)je répondrai

  • P粉441076405

    P粉4410764052023-09-13 10:23:40

    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.

    répondre
    0
  • P粉107991030

    P粉1079910302023-09-13 10:07:27

    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);

    répondre
    0
  • Annulerrépondre