Multidimensionales Array erweitern

  • Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Space Vampire

Senior HTML'ler
19 Mai 2009
1.794
31
48
Claudia Colonia
www.space-vampire.de
#1
Ich lese aus mehreren Website bestimmte Werte aus. Eine einfache Ausgabe per foreach klappt auch einwandfrei. Jeder Datensatz wird korrekt erhoben und einmal ausgegeben.
Ich muss die Datensätze aber weiterverarbeiten und zu diesem Zweck möchte ich sie in einem multidimensionalen Array zusammenführen.
Aber das klappt nicht so ganz.
Jedes Mal, wenn die foreach ein weiteres Array in das bestehende Array hinzufügt, schreibt sie es ins "Root"-Array und in jedes darin befindliche Array. Ich hab mich jetzt schon einmal quer durchs Netz gegoogelt aber nichts hat funktioniert (eckige Klammern, etc..).
Ich hab das Script jetzt mal auf meine ursprüngliche Variante zurückgesetzt, die meinem Empfinden nach eigentlich funktionieren müsste...aber es halt nicht tut.

Kann mir jemand sagen, was ich falsch mache?

PHP:
<?php
// Die auszulesenden Listings
$urls = array(
    "https://www.geocaching.com/track/details.aspx?guid=891d8102-732d-416d-ae69-0d0fcef0e7c3",
    "https://www.geocaching.com/track/details.aspx?guid=500a4523-045f-4807-9b34-c3007f94e64a",
    "https://www.geocaching.com/track/details.aspx?guid=002767cd-ae78-4e8e-a4f4-2f09f0f159a2",
    "https://www.geocaching.com/track/details.aspx?guid=401f2173-5bc7-4d52-ac85-ea5e4f4e6c1a",
    "https://www.geocaching.com/track/details.aspx?guid=13a0e67d-1560-476c-a91c-cf1090e53145",
    "https://www.geocaching.com/track/details.aspx?guid=2bc26fda-d16d-4330-8868-4f42e821ea98",
    "https://www.geocaching.com/track/details.aspx?guid=296b1dbd-c07e-4c0e-948e-311ecb284644",
    "https://www.geocaching.com/track/details.aspx?guid=b4628966-c062-4496-b7be-00a4e408e64e",
    "https://www.geocaching.com/track/details.aspx?guid=949502a0-493f-4841-9599-9fa366d5c25a",
    "https://www.geocaching.com/track/details.aspx?guid=bae4c9ea-69a2-48ec-8904-e763691a7899",
    "https://www.geocaching.com/track/details.aspx?guid=427fa743-cf44-4407-8cbf-ea7f3192ee6a",
    "https://www.geocaching.com/track/details.aspx?guid=47f4b28d-8617-42b2-990e-c3294df13249",
    "https://www.geocaching.com/track/details.aspx?guid=48ca7ae9-f649-4835-9d81-e22f53df2849"
);

//Ein leeres Array erstellen
$teilnehmer_daten = array();

// Die Werte aus den Listings auslesen
foreach($urls as $url){
    $html = file_get_contents($url);

    //Hier werden jetzt einige Werte ausgelesen. Dieser teil funktioniert einwandfrei, deswegen hab ich ihn, der Übersicht halber entfernt
    }
    
    //DIESER TEIL IST DER; DER NICHT FUNKTIONIERT
    //Daten in mehrdimensionales Array schreiben
    array_push($teilnehmer_daten, array("Kilometer" => $km, "Name" => $name, "Distanz" => $distanz, "Owner" => $owner, "Verbleib" => $last, "Bild" => $img));
    var_dump($teilnehmer_daten);
}
?>
 

m.scatello

Aktives Mitglied
15 Februar 2017
820
84
28
#2
Wie wäre es mit
PHP:
$teilnehmer_daten[$url] = array("Kilometer" => $km,
                                "Name" => $name,
                                "Distanz" => $distanz,
                                "Owner" => $owner,
                                "Verbleib" => $last,
                                "Bild" => $img);
 

Sempervivum

Senior HTML'ler
18 Oktober 2016
1.222
255
83
66
#4
Solch ein Problem hatte ich mal mit Javascript und der Grund war, dass mit Referenzen statt Werten gearbeitet wurde, so dass bei Ändern der Variablen auch die früheren Einträge mit geändert wurden.Mit einfachen Variablen kann ich mir das allerdings nicht erklären. Poste doch auch mal den Code, wie diese $km, $name etc. vorbereitet werden, möglicher Weise reduziert auf wenige Variablen.