array_push oder doch nicht?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • array_push oder doch nicht?

    Hallo zusammen,

    Ich möchte ein Array befüllen, habe allerdings die Hürde das dies nicht in einem Rutsch geht. Ich habe ein Array mit einem Wert, sagen wir $i mit Inhalt [0] => 14 - nun klickt der User auf einen Link (PHP_SELF) und dadurch soll ein weiterer Wert dem Array $i hinzugefügt werden. Irgendwie bekomm ich es nicht gebacken, mein Problem ist nämlich das durch das "neuladen" der Seite die Initiierung von $i weg ist, und dadurch der neue Wert den "alten" Wert überschreibt, habe mich schon daran versucht indem ich mit Session's arbeite, kriege es aber irgendwie nicht hin.

    Hier etwas konkreter:

    Mit dieser Funktion lasse ich mir den Wert einer Karte geben:

    Quellcode

    1. function kartegeben()
    2. {
    3. $karte = rand(1,21);
    4. return $karte;
    5. }


    Folgender Code wertet aus und soll das Array füllen (wo ich eben so meine Probleme habe:

    Quellcode

    1. $i = array();
    2. if($_GET['action'] == "kartegeben")
    3. {
    4. $p_arr = array_push($i,kartegeben());
    5. }


    Und mit folgendem HTML Part kann sich der Benutzer eine weitere Karte geben lassen:

    Quellcode

    1. <a href=<?php $PHP_SELF; ?>>Noch ne Karte</a>


    Hier nochmal die ganze Blüte meiner Unfähigkeit :)

    Quellcode

    1. <?php session_start();
    2. ?>
    3. <?php if(empty($_GET['spielen'])) { ?>
    4. <center>
    5. <form name="playername" action="<?php $PHP_SELF; ?>" method="GET">
    6. <input type="text" name="player" value="Spielername"><br>
    7. <input type="Submit" name="spielen" value="Spielen!">
    8. </form>
    9. </center>
    10. <?php
    11. }
    12. $i = array();
    13. function kartegeben()
    14. {
    15. $karte = rand(1,21);
    16. return $karte;
    17. }
    18. if($_GET['action'] == "kartegeben")
    19. {
    20. $p_arr = array_push($i,kartegeben());
    21. }
    22. if($_GET['action'] == "sessoff")
    23. {
    24. session_destroy();
    25. }
    26. if(isset($_GET['player']))
    27. {
    28. $_SESSION['spielername'] = $_GET['player'];
    29. }
    30. ?>
    31. Hallo <?php echo $_SESSION['spielername']; ?><br>
    32. <?php var_dump($i); ?>
    33. <a href=<?php $PHP_SELF; ?>?action=kartegeben>Noch ne Karte</a><br>
    34. <a href=start.php?action=sessoff>Session destroy</a><br>
    Alles anzeigen


    Merci vorab fürs drüberschaun :)

    Grüße,
    Matthias
    Das Leben ist binär - du bist eine 1, oder eine 0

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von RealFairPlayer ()

  • Hi donut :)

    Ich habe es mittlerweile geschafft dass das Array gefüllt wird, mittels Session.

    Hier mein Code:

    Quellcode

    1. <?php session_start(); ?>
    2. <?php
    3. $_SESSION['arr_karten']['karten'] = array();
    4. function kartegeben()
    5. {
    6. $karte = rand(1,11);
    7. return $karte;
    8. }
    9. function checkkarten($kartencounter)
    10. {
    11. if($kartencounter > "21")
    12. {
    13. $antwort = "Leider verloren";
    14. return $antwort;
    15. }
    16. }
    17. if($_GET['action'] == "kartegeben")
    18. {
    19. $p_arr = array_push($_SESSION['arr_karten'],kartegeben());
    20. }
    21. if($_GET['action'] == "neuesspiel")
    22. {
    23. unset($_SESSION['arr_karten'],$kartencounter,$response);
    24. }
    25. if(isset($_GET['player']))
    26. {
    27. $_SESSION['spielername'] = $_GET['player'];
    28. }
    29. if(!empty($_SESSION['arr_karten']))
    30. {
    31. $kartencounter = array_sum($_SESSION['arr_karten']);
    32. foreach($_SESSION['arr_karten'] as $karten)
    33. {
    34. echo $karten."<br>";
    35. }
    36. }
    37. var_dump($_SESSION['arr_karten'] );
    38. ?>
    39. <p><?php echo $kartencounter; $response = checkkarten($kartencounter); echo $response; ?><br>
    40. <a href=<?php $PHP_SELF; ?>?action=kartegeben>Noch ne Karte</a><br>
    41. <a href=<?php $PHP_SELF; ?>?action=neuesspiel>neues Spiel</a><br>
    Alles anzeigen


    Meine foreach Schleife gibt mir die Inhalte auch wieder, jedoch beim ersten Durchlauf steht immer ein "Array" - und des bekomme ich noch nicht weg, aber ich kriegs schon noch hin :) Vielleicht hast du ja für meinen Code noch Verbesserungen? (Für die Frage hasse ich mich jetzt schon :) ) - naja, ich lerns halt noch (und mache es vor allem nicht beruflich) :)

    Grüße,
    Matze
    Das Leben ist binär - du bist eine 1, oder eine 0