Visualizzazione dei risultati da 1 a 8 su 8

Discussione: explode

  1. #1

    explode

    ciao a tutti!
    ho un problema con explode (o provato anche con split, ma non cambia): ho la variabile $player1 che contiene, ad esempio, annamaria&&&15 .
    usoo explode per separe nome e numero, e scrivo:
    codice:
    list ($name[1], $points[1]) = explode ("&&&", $player1);
    echo $name[1];
    echo "
    ";
    echo $points[1];
    però in output mi dà:

    a
    15

    cioé il numero lo passa correttamente, invece del nome passa solo l'iniziale... non capisco, anche player l'ho ottenuto analogamente, con un explode, ma non mi dà questo problema....
    cosa devo modificare?
    grazie mille!

  2. #2
    fai così:

    codice:
    $nomenumero = explode("&&&", $player1);
    
    //nome
    
    echo"$nomenumero[0]";
    
    //numero
    
    echo"$nomenumero[1]";

  3. #3
    il problema è che $name e $points sono degli array, infatti i valori li inserisco in $name[1] e $points[2], quindi non posso creare un array come dici tu...

  4. #4
    io ho provato in locale il codice che hai postato tu, e mi funziona perfettamente!

    prima di list(), alle variabili $name e $points è associato qualche valore?

  5. #5
    no, sono vuote...
    anche a me funziona explode, infatti mi serve per creare la variabile player, ma 2 righe dopo, quando cerco di creare gli array $name e $points, mi fa quell'errore che dicevo..

  6. #6
    ma list() non serve per ad associare ad un array una variabile?

    tu teoricamente dovresti fare:

    list ($name, $points) = explode ("&&&", $player1);

    che è come se tu facessi

    list($name, $points) = array(annina, 15);

    e dove in entrambi i casi

    $name è uguale ad annina
    e $points è uguale a 15

    non ho capito la necessità di usare di usare $name[1] e $points[1] :-(

    questa parte di codice sta forse dentro ad un ciclo e devi dividere un certo numero di nomi-punti??

  7. #7
    in pratica ho le variabili player1, player2, player3, ecc.... ciascuna contenente nome&&&numero, e vorrei mettere i nomi nell'array name e i numeri nell'array points...

    Forse non posso inserire i valori ottenuti con explode all'interno di un array? non penso, perché non mi dà errore... semplicemente mi passa solo il primo carattere dei nomi... non capisco da dove gli esca questa cosa...

  8. #8
    la funzione explode restituisce un'array.

    per fare quello che hai detto tu potresti fare in questo modo:

    $dividi1 = explode("&&&", $player1);
    $dividi2 = explode("&&&", $player2);
    $dividi3 = explode("&&&", $player3);

    avrai questi array:

    //$dividi1[0] = nomeplayer1
    //$dividi1[1] = numeroplayer1

    //$dividi2[0] = nomeplayer2
    //$dividi2[1] = numeroplayer2

    //$dividi3[0] = nomeplayer3
    //$dividi3[1] = numeroplayer3

    adesso potresti fare

    $name = array($dividi1[0],$dividi2[0],$dividi3[0]);

    $points = array($dividi1[1],$dividi2[1],$dividi3[1]);

    e se scriverai:

    echo"$name[0]"; //è uguale a nomeplayer1
    echo"$name[1]"; //è uguale a nomeplayer2

    e così via fino all'ultimo anche per i punti

    se poi tu volevi associare a player1 $name[1] credo non sia possibile a meno che tu non abbia un player0 perchè gli array partono da 0

    speriamo bene stavolta :-) sennò so de coccio

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.