Array ID zuweisen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Array ID zuweisen

    Ich möchte einem array eine eindeutige ID zuweisen, um die Werte anschliessend gezielt anzusprechen. Leider bekomme ich
    es nicht hin. Hier mein Code:
    -----------------------
    $arrFeeds = array();

    // Get a list of all the elements with the name 'item'
    foreach ($doc->getElementsByTagName('item') as $node) {
    $itemRSS = array (
    'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
    'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue,
    'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
    'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue
    );
    array_push($arrFeeds, $itemRSS);
    }
    foreach ($doc1->getElementsByTagName('item') as $node) {
    $itemRSS = array (
    'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
    'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue,
    'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
    'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue
    );
    array_push($arrFeeds, $itemRSS);
    }
    // Output
    print_r($arrFeeds);
    ------------------

    Als Ergebnis bekomme ich einen durchnummerierten array. Wie kann ich die beiden splitten bzw. eine eindeutige ID zuweisen?
    Danke im Voraus.
    Ein Beginner.

  • #2
    Wenn ich die Frage richtig verstehe, möchtest du die Einträge aus doc und doc1 trennen?
    Dann tu doch genau das und wirf die Einträge aus doc1 z.B. auch in ein anderes array $arrFeeds1

    ​​​​

    Kommentar


    • #3
      Dadurch erhält jedes Element eine eindeutige Kennung, die später für gezielten Zugriff mapquest driving directions verwendet werden kann.

      Kommentar


      • #4
        $arrFeeds = array(); // Get a list of all the elements with the name 'item' from $doc foreach ($doc->getElementsByTagName('item') as $node) { $itemRSS = array( 'id' => count($arrFeeds) + 1, // Eindeutige ID basierend auf dem aktuellen Array-Index 'title' => $node->getElementsByTagName('title')->item(0)->nodeValue, 'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue, 'link' => $node->getElementsByTagName('link')->item(0)->nodeValue, 'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue ); array_push($arrFeeds, $itemRSS); } // Get a list of all the elements with the name 'item' from $doc1 foreach ($doc1->getElementsByTagName('item') as $node) { $itemRSS = array( 'id' => count($arrFeeds) + 1, // Eindeutige ID basierend auf dem aktuellen Array-Index 'title' => $node->getElementsByTagName('title')->item(0)->nodeValue, 'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue, 'link' => $node->getElementsByTagName('link')->item(0)->nodeValue, 'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue ); array_push($arrFeeds, $itemRSS); } // Output print_r($arrFeeds)
        Stichworte: run 3

        Kommentar


        • #5
          Zitat von peepee Beitrag anzeigen
          Als Ergebnis bekomme ich einen durchnummerierten array. Wie kann ich die beiden splitten bzw. eine eindeutige ID zuweisen?
          Danke im Voraus.
          Ein Beginner.
          In Deinem Code erzeugst Du ja mehrere Arrays $itemRSS, welche jeweils die Schlüssel "item", "desc", "link", u.s.w. enthalten.

          Diese einzelnen Arrays führst Du dann in dem Array $arrFeeds zusammen, und zwar mittels array_push().

          Du bekommst also am Ende ein Array $arrFeeds, welches als Elemente wiederum Arrays enthält. Diese "inneren" Arrays enthalten jeweils die Schlüssel "item", "desc", "link" u.s.w.

          Das "äußere" Array verwendet als Schlüssel "0", "1," u.s.w., ist also durchnummeriert, wie Du es nennst, weil array_push() eben so funktionert!

          Wenn Du im "äußeren" Array andere Schlüssel verwenden willst, dann ersetze doch array_push($arrFeeds, $itemRSS) einfach durch $arrFeeds​['foo'] = $itemRSS, wobei "foo" hier natürlich nur ein Beispiel ist und durch irgendeinen String ersetzt werden kann. Aber Achtung: Du musst dann bei jeder Zuweisung einen andern Schlüssel wählen!

          PHP-Code:
          <?php
          $arrFeeds 
          = array();

          $itemRSS = array (
             
          'title' => "Beispiel 123",
             
          'desc' => "Da ist nur ein Beispiel",
             
          'link' => "http://www.example.com/",
             
          'date' => "2024-03-14"
          );
          $arrFeeds['foo'] = $itemRSS;

          $itemRSS = array (
             
          'title' => "Beispiel 456",
             
          'desc' => "Noch so ein Beispiel",
             
          'link' => "http://www.contoso.com/",
             
          'date' => "2024-03-15"
          );
          $arrFeeds['bar'] = $itemRSS;

          var_dump($arrFeeds);
          ?>
          Code:
          array(2) {
              ["foo"] => array(4) {
                  ["title"] => string(12) "Beispiel 123"
                  ["desc"] => string(23) "Da ist nur ein Beispiel"
                  ["link"] => string(23) "http://www.example.com/"
                  ["date"] => string(10) "2024-03-14"
              }
              ["bar"]=> array(4) {
                  ["title"] => string(12) "Beispiel 456"
                  ["desc"] => string(20) "Noch so ein Beispiel"
                  ["link"] => string(23) "http://www.contoso.com/"
                  ["date"] => string(10) "2024-03-15"
              }
          }
          Zuletzt geändert von cober93327; 14.03.2024, 14:24.
          Projekte: php-instanceid

          Kommentar

          Lädt...
          X