0
votes

Éléments de matrice de décalage Un niveau à droite (bas niveau) lors de l'utilisation de

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;


0 commentaires

4 Réponses :


0
votes

Essayez ceci:

foreach ($result as $key => $value) {
    $newarray[$key] = ['test' => $value];
};


2 commentaires

C'est ça! C'est une solution aussi simple. Merci beaucoup!


Notez que le semi-points après le cycle pour Acheach est inutile.



0
votes

Ce serait une approche fonctionnelle et flexible: xxx

la sortie est évidemment: xxx


0 commentaires

3
votes

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
                )

        )

)


5 commentaires

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] lorsque vous essayez d'attribuer une nouvelle valeur. Mais je ne connais pas le stand actuel, php malheureusement change toujours beaucoup ...


Je dirais que je dirais $ arrayer [$ k] = ['test' =>> $ v]; sans l'appel préalable à non défini () 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 :-)



0
votes
$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

2 commentaires

Avez-vous vraiment besoin array_reduce () pour cela? N'est pas array_map () suffisant?


@Barmar Full ACK. Array_Map fonctionne aussi et est beaucoup plus facile à lire. Réponse modifiée.