Désolé s'il y a une réponse évidente, mais j'ai essayé de nombreuses heures à Google la solution et essayé de différentes manières. Fondamentalement, j'essaie de changer de matrice dans un tableau multidimensionnel un niveau à droite. La matrice de sortie doit être introduite dans un programme qui accepte uniquement le format souhaité de la matrice multidimensionnelle.
Nous avons ($ Résultat): P>
foreach ($result as $key => $value) {
$newarray[] = array($key => $value)
};
return $newarray;
4 Réponses :
Essayez ceci:
foreach ($result as $key => $value) {
$newarray[$key] = ['test' => $value];
};
C'est ça! C'est une solution aussi simple. Merci beaucoup!
Notez que le semi-points après le cycle code> pour Acheach code> est inutile.
Ce serait une approche fonctionnelle et flexible: la sortie est évidemment: p>
Vous pouvez utiliser une boucle et une indexation dans le même réseau à l'aide de la clé actuelle. Ensuite, mettez à jour la valeur avec un nouveau tableau où vous utilisez test code> comme clé et $ v code> comme valeur. Array
(
[0] => Array
(
[test] => Array
(
[id] => 1
[data] => AAA
)
)
[1] => Array
(
[test] => Array
(
[id] => 2
[data] => BBB
)
)
[2] => Array
(
[test] => Array
(
[id] => 3
[data] => CCC
)
)
)
Cela effectue une copie complète des données susceptibles de créer des problèmes avec des volumes de données non triviaux.
Possible, mais je m'attendrais à ce que cela jette un avis pour un indéfini $ US $ [$ K] code> lorsque vous essayez d'attribuer une nouvelle valeur. Mais je ne connais pas le stand actuel, php code> malheureusement change toujours beaucoup ...
Je dirais que je dirais $ arrayer [$ k] = ['test' =>> $ v]; code> sans l'appel préalable à non défini () le code> est plus élégant et plus facile à lire . Mais cela est certainement une préférence personnelle.
@ Barkascha Bien sûr! Vous pouvez simplement écraser la valeur en utilisant la clé actuelle. Merci.
J'aime ta réponse :-)
$data = [
[
'id' => 1,
'data' => "AAA"
],
[
'id' => 2,
'data' => "BBB"
],
[
'id' => 3,
'data' => "CCC"
]
];
$newArray = array_map(function ($value) {
return ['test' => $value];
}, $data);
var_dump($newArray);
https://secure.php.net/manual/en/function.array-map.php
Avez-vous vraiment besoin array_reduce () code> pour cela? N'est pas array_map () code> suffisant?
@Barmar Full ACK. Array_Map fonctionne aussi et est beaucoup plus facile à lire. Réponse modifiée.