[RESOLU] Changer les clés d'un tableau multidimensionnel

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Changer les clés d'un tableau multidimensionnel

Re: Changer les clés d'un tableau multidimensionnel

par GiorgioLino » 22 mars 2017, 16:28

@azephp
Il existe une fonction php qui répond exactement à ta problématique, à savoir [url=http://php.net/array-column]array_column[/url]

Du coup si ton tableau est contenu dans la variable $records, ton nouveau tableau indexé par les id s'obtient avec ceci

[PHP]$recordsById = array_column($records, null, 'id');[/PHP]

cf. http://ideone.com/yIMqOl

N.B. [url=http://php.net/array-column]array_column[/url] a été introduite à partir de php 5.5.0 cependant un backport existe pour les versions inférieures https://github.com/ramsey/array_column/ ... column.php

Re: Changer les clés d'un tableau multidimensionnel

par azephp » 22 mars 2017, 15:32

Ce tableau résulte d'un fetchAll.
Je veux les ID en clé pour pouvoir facilement les retrouver

Re: CHANGER LES CLÉS D'UN TABLEAU MULTIDIMENSIONNEL

par Mazarini » 17 mars 2017, 16:23

Ben crée le directement avec les bonnes clés :)
Mais tu ne montres pas comment tu crées le tableau et tu ne dis pas pourquoi tu veux l'id comme clé.

Re: CHANGER LES CLÉS D'UN TABLEAU MULTIDIMENSIONNEL

par azephp » 17 mars 2017, 15:42

Merci, ta solution fonctionne, c'est cool !

Cependant, j'aimerais ne pas avoir à recréer de tableau .

Re: CHANGER LES CLÉS D'UN TABLEAU MULTIDIMENSIONNEL

par Mazarini » 17 mars 2017, 14:19

Je suppose que ce sont les enregistrements d'une base de données que tu recois telquel.
$results = array();
foreach ($records as $record) {
   $cle = record['id'];
   $results[$cle] = $record;
}
$records = $results;

Changer les clés d'un tableau multidimensionnel

par azephpp » 17 mars 2017, 13:07

Bonjour,

Bon, je m'en reviens vers vous après 3 heures sur le problème, je n'en peux plus...

J'ai un array que voici :

Code : Tout sélectionner

D:\wamp64\www\index.php:9: array (size=4) 0 => array (size=5) 'id' => string '3' (length=1) 'groupname' => string 'test' (length=4) 'cinema_group' => string '2' (length=1) 'cinema_name' => string 'test_1' (length=6) 'cinema_location' => string 'test_location1' (length=14) 1 => array (size=5) 'id' => string '4' (length=1) 'groupname' => string 'test' (length=4) 'cinema_group' => string '2' (length=1) 'cinema_name' => string 'test_2' (length=6) 'cinema_location' => string 'test_location2' (length=14) 2 => array (size=5) 'id' => string '5' (length=1) 'groupname' => string 'test' (length=4) 'cinema_group' => string '2' (length=1) 'cinema_name' => string 'test3' (length=5) 'cinema_location' => string 'test_location3' (length=14) 3 => array (size=5) 'id' => string '6' (length=1) 'groupname' => string 'test' (length=4) 'cinema_group' => string '2' (length=1) 'cinema_name' => string 'test4' (length=5) 'cinema_location' => string 'test_location4' (length=14)
Je veux juste modifier les clés 0, 1, 2 et 3 par la valeur de l'id, pour avoir ca :

Code : Tout sélectionner

D:\wamp64\www\index.php:9: array (size=4) 3 => ... 4 => ... 5 => ... 6 => ...
Aucun moyen d'y arriver, j'ai passé 3 heures en essayant avec les fonctions php sur les tableaux, des foreach...

Si vous avez une solution, je suis preneur !