Ceci est l'ensemble du résultat de ma base de données Comment puis-je modifier le plan merci. p> p> $ [0] code> à
$ planifier [valeur_of_id] < / code> p>
7 Réponses :
$plans = array(); foreach($plan as $item) { $plans[$item['id']] = $item; } $plans contains the associative array.This is just a simple solution.
Cela ne le fera pas en place, mais:
$new_plan = array(); foreach ($plan as $item) { $new_plan[$item['id']] = $item; }
Voir le code que vous avez utilisé pour assembler $ Plan serait utile, mais je vais supposer que c'était quelque chose comme ça Vous pouvez simplement affecter une valeur explicite tout en tirant des données Votre base de données, comme ceci: p> Ceci assume $ res est le résultat défini à partir de votre requête de base de données. p> p>
$newplan = array(); foreach($plan as $value) { $id = $value["id"]; unset($value["id"]); $newplan[$id] = $value; }
Cette réponse manque à son explication éducative.
Vous pouvez également utiliser array_reduce code> généralement utilisé pour, bien, réduisant un tableau. Qui a déclaré qu'il peut être utilisé pour obtenir un format de tableau comme vous le souhaitez par simple renvoi des mêmes éléments que dans la matrice d'entrée mais avec les touches requises.
// Note: Uses anonymous function syntax only available as of PHP 5.3.0
// Could use create_function() or callback to a named function
$plan = array_reduce($plan, function($reduced, $current) {
$reduced[$current['id']] = $current;
return $reduced;
});
Cela peut être un peu en retard mais je cherche une solution au même problème. Mais puisque toutes les autres réponses impliquent des boucles et sont trop compliquées IMHO, j'essaie moi-même des trucs moi-même.
C'est aussi simple que cela. p> p>
Ou, simplement array_column ($ éléments, null, "id"); code>
À mon avis, il n'y a pas de technique plus simple ou plus expressif que Code: ( démo ) p> note: ceci La technique est également couramment utilisée pour garantir que tous les compartiments contiennent une valeur unique au sein de la matrice mère. Cela se produit car les matrices peuvent ne pas contenir des touches en double sur le même niveau. Par conséquent, si une valeur en double survient lors de l'utilisation de < Un href = "https://3v4l.org/5sbjk" rel = "NOFOOLS NOREFERRER"> démonstration de "perte de données" en raison de la nouvelle collision clé. p> p> array_column () code> avec un
null code> second paramètre. Le paramètre
null code> informe la fonction pour conserver tous les éléments de chaque sous-réseau, les nouvelles touches de niveau 1ère sont dérivées de la colonne nommée dans le troisième paramètre de
array_column () code>.
array_column () code>, les compartiments précédents seront remplacés par chaque occurrence ultérieure de la même valeur à utiliser comme nouvelle clé. P>
Selon la façon dont vous interrogez vos résultats, vous pouvez modifier la matrice là-bas, mais nous devrions voir votre code.