78 votes

Comment renommer les clés d'un tableau en PHP ?

Lorsque je fais un var_dump sur une variable appelée $tags (un tableau multidimensionnel), j'obtiens ceci :

Array
(
    \[0\] => Array
        (
            \[name\] => tabbing
            \[url\] => tabbing
        )

    \[1\] => Array
        (
            \[name\] => tabby ridiman
            \[url\] => tabby-ridiman
        )

    \[2\] => Array
        (
            \[name\] => tables
            \[url\] => tables
        )

    \[3\] => Array
        (
            \[name\] => tabloids
            \[url\] => tabloids
        )

    \[4\] => Array
        (
            \[name\] => taco bell
            \[url\] => taco-bell
        )

    \[5\] => Array
        (
            \[name\] => tacos
            \[url\] => tacos
        )
)

Je voudrais renommer toutes les clés du tableau appelées "url" en "valeur". Quelle serait la bonne façon de procéder ?

0voto

otay Points 33

Sur la base de l'excellente solution fournie par Alex, j'ai créé une solution un peu plus flexible en fonction d'un scénario auquel j'étais confronté. Maintenant, vous pouvez utiliser la même fonction pour plusieurs tableaux avec différents nombres de paires de clés imbriquées, vous devez juste passer dans un tableau de noms de clés à utiliser comme remplacements.

$data_arr = [
  0 => ['46894', 'SS'],
  1 => ['46855', 'AZ'],
];

function renameKeys(&$data_arr, $columnNames) {
  // change key names to be easier to work with.
  $data_arr = array_map(function($tag) use( $columnNames) {
    $tempArray = [];
    $foreachindex = 0;
    foreach ($tag as $key => $item) {
      $tempArray[$columnNames[$foreachindex]] = $item;
      $foreachindex++;
    }
    return $tempArray;
  }, $data_arr);

}

renameKeys($data_arr, ["STRATEGY_ID","DATA_SOURCE"]);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X