variablenübergabe an function

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

  • variablenübergabe an function

    function vergleichen($a,$b)
    {
    $was_soll_sortiert_werden = "Tragfähigkeit";

    if ($a[$was_soll_sortiert_werden] == $b[$was_soll_sortiert_werden])
    return 0;
    elseif
    ($a[$was_soll_sortiert_werden] > $b[$was_soll_sortiert_werden])
    return 1;
    else
    return -1;
    }

    usort($gesuchte_reifen, vergleichen);

    }

    Diese Funktion nutze ich, um ein mehrdimensionales Array zu sortieren.
    Die Variable $was_soll_sortiert_werden möchte ich jetzt gerne auslagern,
    damit ich die Funktion dynamisch nutzen kann.

    $was_soll_sortiert_werden = "Tragfähigkeit";

    Soll an die Funktion übergeben werden. Ich kriegs aber nicht hin!

    So gehts auch

    function vergleichen($a,$b,$was_soll_sortiert_werden, $was_soll_sortiert_werden = "Tragfähigkeit)

    So aber nicht...

    $was_soll_sortiert_werden = "Tragfähigkeit";

    function vergleichen($a,$b,$was_soll_sortiert_werden, $was_soll_sortiert_werden)

    Wer kann helfen?

  • #2
    Hm, wo ist jetzt das Problem? Wenn du es auslagern willst, gibt es zwei Alternativen: Eine globale Variable oder ein weiterer Parameter, wobei ich von der ersten Variante abraten würde.

    Also ist die Lösung doch recht einfach:

    PHP-Code:
    function vergleichen($a$b$sortiereNach='Tätigkeit')
    {
        if (
    $a[$sortiereNach] == $b[$sortiereNach]) {
            return 
    0;
        }
        elseif(
    $a[$sortiereNach] > $b[$sortiereNach]) {
            return 
    1;
        }
        else {
            return -
    1;
        }

    Kommentar


    • #3
      Genau so mache ich es ja.

      Ich möchte jetzt nur Tätigkeiten durch eine Variable ersetzen.

      Das ist mein Problem.

      Kommentar


      • #4
        Original geschrieben von PPP
        Genau so mache ich es ja.
        Ich möchte jetzt nur Tätigkeiten durch eine Variable ersetzen.
        Das ist mein Problem.


        Sorry, aber ich verstehe nicht was du meinst. Indem du die Funktion jetzt aufrust, kannst du ja Tätigkeiten ersetzen.
        PHP-Code:
        $ergebnis vergleichen($a$b'Benutzername'); 
        Wenn du ohne weitere Übergabe eines Parameters das zu vergleichende Element festlegen willst, musst du halt doch eine globale Variable oder Konstante nehmen.
        PHP-Code:
        <?php 
        $sortiereNach 
        'Tätigkeiten';

        function 
        vergleichen($a$b, )
        {
            global 
        $sortiereNach;

            if (
        $a[$sortiereNach] == $b[$sortiereNach]) {
                return 
        0;
            }
            elseif(
        $a[$sortiereNach] > $b[$sortiereNach]) {
                return 
        1;
            }
            else {
                return -
        1;
            }
        }

        ?>

        Kommentar


        • #5
          Es soll prktisch so aussehen...

          <?php
          $sortiereNach = '$Meine_Neue_Variable';

          function vergleichen($a, $b )
          {
          global $sortiereNach;


          Ich möchte $Meine_Neue_Variable in die Funktion einbeziehen.

          Das klappt bis jetzt aber nicht.

          Sinn: Die arrays sollen anhand variabler Schlüssel sortiert werden

          Kommentar


          • #6
            Original geschrieben von PPP
            $sortiereNach = '$Meine_Neue_Variable';
            Das klappt bis jetzt aber nicht.
            das ist so ^^ auch kein Wunder. Was sollen die Single quots da?
            h.a.n.d.
            Schmalle

            http://impressed.by
            http://blog.schmalenberger.it



            Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
            ... nur ohne :-)

            Kommentar


            • #7
              <?php
              $sortiereNach = $Meine_Neue_Variable;

              $sortiereNach = "$Meine_Neue_Variable";


              Ja - nun, so funktioniert es auch nicht.

              Kommentar


              • #8
                <?php
                $sortiereNach = 'Tätigkeiten';

                function vergleichen($a, $b )
                {
                global $sortiereNach;

                if ($a[$sortiereNach] == $b[$sortiereNach]) {
                return 0;
                }
                elseif($a[$sortiereNach] > $b[$sortiereNach]) {
                return 1;
                }
                else {
                return -1;
                }
                }

                ?>

                Nochmal konkret. Ich möchte $sortiereNach an die function übergeben.

                Das geht so aber nicht. Hat jemand einen Tip.

                Kommentar


                • #9
                  Oooh Mann,

                  ich habe die Funktion falsch aufgerufen.

                  Jetzt klappt alles. Danke für eure Beiträge.

                  Eigentlich kann das ding hier gelöscht werden. Ist evtl. irreführend.

                  Danke!

                  Kommentar


                  • #10
                    http://www.php-resource.de/forum/sho...threadid=47716

                    Kommentar

                    Lädt...
                    X