Sortierung nach 2 zusammengehörenden Variablen

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

  • Sortierung nach 2 zusammengehörenden Variablen

    Hallo zusammen. Ich stecke fest. Ich habe folgendes Problem:
    Ich habe viele Einträge: einen Namen und eine Nummer. Die hole ich aus einer Liste und habe dann:
    PHP-Code:
    $arr1=array($name1,$number1); // Felix, 6
    $arr2=array($name2,$number2); // Peter, 17
    $arr3=array($name3,$number3); // Roman, 1 
    Nun müsste ich diese Variablen nach der Nummer sortieren, aber dann den Namen bekommen. Ich möchte also bekommen --> von der kleinsten Nummer zur grössten --->
    Roman
    Felix
    Roger
    Peter

    Kann mir jemand auf die Sprünge helfen, wie ich dies sortieren kann, so dass die Variable mit dem Namen drin mitkommt, resp. sortiert zur Verfügung steht?
    Vielen Dank für eure Hilfe!
    Zuletzt geändert von asterix6; 29.03.2023, 12:42.

  • #2
    ich hole es aus einer csv Datei, finde die Daten und schreibe sie in diese Arrays rein. Ich suche nach den Namen und finde damit auch die Zahl. Also ich suche nach Felix und finde die Zahl im Feld davor: 6.

    Diese beiden gefundenen Variablen ($name1 == Felix und $number1==6) schreibe ich in einen Array: $arr1=array($name1,$number1);. Dann suche ich den nächsten Namen usw. So habe ich alle diese $arrX mit je 2 Variablen (Name, Zahl). Von diesen $arrX möchte ich jetzt sortieren nach $numberX und dann den Namen auslesen

    Kommentar


    • #3
      aber ich brauche ja nicht diese Nummer, sondern den dazugehörigen Namen. kann ich auch die $arrX in einen weiteren array packen und den nach Nummer sortieren? Das versuchte ich, aber da bleibe ich stecken. Hat jemand einen Tipp?

      Kommentar


      • #4
        Suchen nach Name, sortieren nach Nummer.

        Kommentar


        • #5
          Der sieht so aus:

          PHP-Code:
          if (($handle fopen("names.csv""r")) !== FALSE) {
          $i 0;
          while ((
          $data fgetcsv($handle1000",")) !== FALSE)
          {
          $encodedData = array();
          if(
          $i 2) {
          foreach(
          $data as $rawData){
          $encodedData[]=fixEncoding($rawData);
          }
          $rows[] = $encodedData;
          }
          $i++;
          }
          fclose($handle);
          }

          $IDs=array();

          }

          foreach (
          $rows as $key) {
          // hier in array nach Namen suchen (ab $key[40] sind in allen geraden $keys Namen und in allen ungeraden die Nummern dazu.)

          $name1 array_keys($key$name1);
          $number1 $key[$name1+1];
          $arr1=array($name1,$number1)

          $name2 array_keys($key$name2);
          $number2 $key[$name2+1];
          $arr2=array($name2,$number2)

          etc
          .
          // sortieren nach Feldnummern-Nummern aber Feldnummern-Name ausgeben und daraus den Namen holen.

          Zuletzt geändert von asterix6; 30.03.2023, 06:50.

          Kommentar


          • #6
            I write these two found variables ($name1 == Felix and $number1==6) into an array: $arr1=array($name1,$number1); . Then I look for the next name and so on. So I have all these $arrX with 2 variables each (name, number). From these $arrX I would now like to sort by $numberX and then read out the name
            [COLOR=#ffffff]https://ppssppgold.one[/COLOR]
            Zuletzt geändert von admin; 24.04.2023, 09:08.

            Kommentar


            • #7
              PHP-Code:
              $rows[] = $encodedData
              Versehe das Element von $rows mit dem zu sortierenden id aus $encodedData - z.B.

              PHP-Code:
              $rows$encodedData[0]] = $encodedData//Je nachdem in welcher Spalte sich die gewünschte id befindet 
              Sortiere anschließend $rows;
              Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
              Schön - etwas Geschichte kann ja nicht schaden.
              Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

              Kommentar


              • #8
                Danke! So funktioniert es. Vielen Dank für die Hilfe!

                Kommentar

                Lädt...
                X