explode splittet den String nicht

  • Hallo zusammen,


    ich habe leider ein kleines Problem mit meinem PHP-Code und komme nicht weiter.
    Hier zunächst der Code:

    Code
    while($result = $query->fetch(PDO::FETCH_ASSOC)){
    $array = explode(',', implode($result));
    debug_to_console($result);
    debug_to_console($array[0]);
    debug_to_console($array[1]);
    $TEMP[$i] = $array[0];
    $DATE[$i] = $array[1];
    $i++;
    }


    Ich versuche hier einen String mit Hilfe von explode zu splitten, allerdings klappt das leider nicht-.- Meine Ausgaben, die ich dann bekommen sind:

    Code
    [Log] Debug Objects $result: 22.6039186962,2017-06-22 (index.php, line 17)
    [Log] Debug Objects $array[0]: 22.60391869622017-06-22 (index.php, line 17)
    [Log] Debug Objects $array[1]: (index.php, line 19)


    Es wird einfach nur das Komma aus dem String gelöscht anstatt diesen zu splitten.
    Ich habe es mal mit einem Punkt versucht und dann wurde der String gesplittet...


    Hätte jemand vielleicht eine Idee warum das mit ',' nicht klappt???


    Danke schon mal für die Hilfe.

  • Das habe ich auch schon versucht, allerdings bekomme ich dann die folgende Fehlermeldung:

    Code
    Warning: explode() expects parameter 2 to be string, array given in /var/www/html/functions.php on line 46


    An einer anderen Stelle nutze ich das auch mit implode aber da splitte ich mit einem Punkt und nicht wie in diesem Fall mit einem Komma :-/

  • Du sagst mit $query->fetch(PDO::FETCH_ASSOC) Du willst ein Array --> Warning: explode() expects parameter 2 to be string, array given ...


    Zeig doch mal ohne den Umweg des log einfach ein


    [code=php]while ($result = $query->fetch(PDO::FETCH_ASSOC)) {
    var_dump($result);
    }[/php]


    Ich schätze, das sollte funktionieren


    [code=php]
    while ($result = $query->fetch(PDO::FETCH_NUM)) {
    $TEMP[$i] = $result[0];
    $DATE[$i] = $result[1];
    $i++;
    }[/php]


    Knut

  • Ja, lies die Fehlermeldung mal :fies:


    $result ist bereits ein Array - wieso willst du dann erneut ein Array daraus machen? Beitrag#2 sollte dich eigentlich dazu bringen die daraus resultierende Fehlermeldung zu beachten ;)



    //EDIT: Übrigens: Wenn du implode(); mit nur einem Parameter verwendest kommt nicht das erwartete Ergebnis dabei raus - woher soll implode(); wissen das es "," als Trennzeichen setzen soll? Das musst du implode(); also schon sagen: http://sandbox.onlinephpfuncti…937f145f3210ca9c400a7350f


    Wenn du uns den Rest deines Codes zeigst könnte ich mir aber auch vorstellen weitere Verbesserungen vornehmen zu können... Warum du zB $TEMP[$i] usw setzt resultiert glaub ich aus einer falschen Denkweise, das lässt sich bestimmt auch Ressourcenschonender/schneller umsetzen.

  • Ich danke euch schon mal für die Hilfe!!! Hab vorher leider noch nicht wirklich was in PHP gemacht und das ist halt das erste Projekt damit :-D
    Ich werde später mal die Vorschläge ausprobieren...