1
votes

Comment fusionner le premier index d'un tableau avec le premier index d'un autre tableau

Je souhaite combiner deux tableaux, mais je souhaite fusionner le 1er index avec le 1er et le 2ème avec le 2ème et ainsi de suite.

array:8 [â–¼
    0 => "31.4824454"
    1 => "31.4824454"
    2 => "31.48306351"
    3 => ""
    4 => "74.3270004"
    5 => "74.31525707"
    6 => "74.31045055"
    7 => ""
]

Sortie:

$latlong = office::select('latitude', 'longitude')->get();
foreach ($latlong as $l)
{
    $lati = explode(',', $l->latitude);
    $longi = explode(',', $l->longitude);

    $result = array_merge($lati, $longi);
    dd($result);
}


6 commentaires

quelles sont vos entrées?


avez-vous essayé avec la boucle for?


je l'obtiens de db


je ne sais pas à quoi on s'attend?


31.4824454,74.3270004 31.4824454,74.31525707 31.48306351,74.31045055 veulent ce résultat


ok s'il vous plaît éditez votre question avec cela et s'il vous plaît ajouter les données d'entrée


3 Réponses :


-1
votes

Vous devez parcourir le tableau et récupérer les résultats à la fois du tableau

$results = [];
    for($i = 0; $i<sizeof($lati);$i++){
        $result[] = [
            'lat' => $lati[$i],
            'lng' => $longi[$i],
        ]
    }

Cela vous donnera le tableau avec lat long


5 commentaires

$ lati et $ longi n'existent même pas.


Vous avez juste besoin d'interpréter la logique, si vous voulez être une copie de chat, je peux vous aider alors


Si votre réponse est manifestement erronée, elle ne devrait pas être là. Il n'y a pas d'interprétation à avoir sur un algorithme qui devrait prendre 5 lignes à faire.


Vous pensez que c'est faux. Je ne pense pas. J'ai travaillé sur la même solution. Quoi qu'il en soit, c'est à vous de l'accepter ou non.


Essayez simplement votre réponse. Cela ne fonctionne pas du tout. Vous parlez de 2 tableaux alors qu'OP n'en a qu'un.



0
votes

Vous pouvez utiliser array_map () pour joindre des valeurs de deux tableaux comme celui-ci

$latlong = office::select('latitude', 'longitude')->get();
foreach ($latlong as $l)
{
    $lati = explode(',', $l->latitude);
    $longi = explode(',', $l->longitude);

    $result = array_map(
        function($lat, $long) {
            return $lat . ", " . $long;
        },
        $lati,
        $longi
    )
    dd($result);
}


0 commentaires

-1
votes

Utilisez ce qui suit:

$coordinates = office::select('latitude', 'longitude')->get();

$result = [];
foreach ($coordinates as $c) {
    $result[] = $c->latitude . ', ' . $c->longitude;
}

dd($result);

Chaque ligne en $ coordonnées est un objet qui a à la fois la longitude et la latitude, il vous suffit donc de faire une boucle dessus et de les stocker dans un nouveau tableau résultant .


0 commentaires