Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    Come posso gestire questi due arrays...?

    Ho $ARRAYNUMERI e $ARRAYTEMPI contenenti entrambi valori numerici
    Ora dal primo dovrei riuscire ad estrapolare i suoi elementi in modo da visualizzare e salvare in appositi variabili o array da una parte i valori ripetuti e dall'altra quelli presenti una sola volta...

    Dal secondo array invece mi basta ricavare il valore più alto tra quelli presenti che vanno da 1 a 9.

    Qualcuno mi refresherebbe... su come fare?

    Grazie


  2. #2
    Per la seconda domanda, esiste la funzione max().

    Per l'altra, sinceramente non sono sicuro di aver capito bene, ma ho provato a scriverti una funzioncina:

    Codice PHP:
    function quellochetipare($arraynumeri){
            
    $singoli array_unique($arraynumeri);
            
    $nonripetuti array_diff($arraynumeri,array_diff_assoc($arraynumeri,$singoli));
            
    $ripetuti array_diff($singoli$nonripetuti);
            return array(
    $ripetuti,$nonripetuti);

    Dovrebbe ritornare un array multidimensionale il cui primo elemento è l'array dei valori ripetuti, il secondo quello dei non ripetuti (ma non l'ho provata comunque quindi potrebbe non funzionare...)

    Ciao!

  3. #3
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    grazie! ma...

    non avendo molta (anzi punta...) dimestichezza con gli array.. soprattutto quelli bidimensionalli...

    come faccio a recuperarne i rispettivi valori?

    Io ho provato così...

    print $ripetuti;
    print "

    ";
    print $nonripetuti;

    ma mi stampa a video questa parolaccia...

    Notice: Undefined variable: ripetuti in ...
    Notice: Undefined variable: nonripetuti in ...

    Grazie mille per portarmi fino in fondo se puoi...



    ps:La prima risposta invece mi ha funzionato alla prima! (max)

  4. #4
    Devi fare una chiamata alla mia funzione quellochetipare() passandogli l'array dei numeri.

    Codice PHP:
    $array quellochetipare($ARRAYNUMERI); 
    Il valore di ritorno della funzione (che è un array) lo metti in una variabile, nel caso sopra $array.

    Ora, in $array hai due elementi che sono a loro volta due array, $array[0] è l'insieme dei numeri ripetuti, $array[1]
    quello dei non ripetuti.

    Questo ti dovrebbe far capire qualcosa in più:

    Codice PHP:
    echo '<pre>';
    print_r($array[0]);
    echo 
    '</pre>';
    echo 
    '

    <pre>'
    ;
    print_r($array[1]);
    echo 
    '</pre>'
    Spero di essere stato utile.

    Ciao!

  5. #5
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    purtroppo non mi tornano i valori...

    es...



    NUMERI IN TOTALE
    17-62-72-13-18-11-22-33-44-55-66-77-88-89---2-12-22-32-42-52-62-72-82----------------------

    con questo cod:

    $array = quellochetipare($ARRAYNUMERI);

    echo '<pre>non ripetuti
    ';
    print_r($array[0]);
    echo '</pre>';
    echo '

    <pre>ripetuti
    ';
    print_r($array[1]);
    echo '</pre>';

    mi risulta...

    non ripetutiArray
    (
    )




    ripetutiArray
    (
    [0] => 17,62,72
    [1] => 13,18
    [2] => 11,22,33,44,55,66,77,88
    [3] => 89
    [4] => 2,12,22,32,42,52,62,72,82
    )

    invece tra i ripetu ti mi dovrebbero risultare secondo l'esempio solo..

    62.72.22

    dove fagianooo???

    Comunque grazie mille!

  6. #6
    Ho provato, e a me funziona tutto come dovrebbe, sia sotto PHP4 che sotto PHP5.

    Array
    (
    [1] => 62
    [2] => 72
    [6] => 22
    )



    Array
    (
    [0] => 17
    [3] => 13
    [4] => 18
    [5] => 11
    [7] => 33
    [8] => 44
    [9] => 55
    [10] => 66
    [11] => 77
    [12] => 88
    [13] => 89
    [14] => 2
    [15] => 12
    [17] => 32
    [18] => 42
    [19] => 52
    [22] => 82
    )


    A quanto pare da ciò che hai scritto nel precedente post, dichiari in modo sbagliato l'array, magari metti tutto in un unico elemento stringa.

    Posta lo script completo, inclusa la dichiarazione dell'array $ARRAYNUMERI.

    Ciao!

  7. #7
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    lo inizializzo e popolo... così.. ma...

    $ARRAYNUMERI= array();
    $ARRAYNUMERI2=array_push($ARRAYNUMERI,"$NUM1,$NUM2 ,$NUM3");
    $ARRAYNUMERI3=array_push($ARRAYNUMERI2,"$NUM4,$NUM 5");
    $ARRAYNUMERI4=array_push($ARRAYNUMERI3,"$NUM6,$NUM 7,$NUM8,$NUM9,$NUM10,$NUM11,$NUM12,$NUM13");
    $ARRAYNUMERI5=array_push($ARRAYNUMERI4,"$NUM14");
    $ARRAYNUMERI6=array_push($ARRAYNUMERI5,"$NUM15,$NU M16");
    $ARRAYNUMERI7=array_push($ARRAYNUMERI6,"$NUM17,$NU M18,$NUM19,$NUM20,$NUM21,$NUM22,$NUM23,$NUM24,$NUM 25");
    $ARRAYNUMERI8=array_push($ARRAYNUMERI7,"$NUM26,$NU M27,$NUM28,$NUM29,$NUM30,$NUM31,$NUM32,$NUM33,$NUM 34,$NUM35");
    $ARRAYNUMERI9=array_push($ARRAYNUMERI8,"$NUM36,$NU M37,$NUM38,$NUM39,$NUM40");
    $ARRAYNUMERI10=array_push($ARRAYNUMERI9,"$NUM41,$N UM42");
    $ARRAYNUMERI11=array_push($ARRAYNUMERI10,"$NUM43,$ NUM44,$NUM45,$NUM46,$NUM47");

    function quellochetipare($ARRAYNUMERI11){
    $singoli = array_unique($ARRAYNUMERI11);
    $nonripetuti = array_diff($ARRAYNUMERI11,array_diff_assoc($ARRAYN UMERI11,$singoli));
    $ripetuti = array_diff($singoli, $nonripetuti);
    return array($ripetuti,$nonripetuti);
    }


    $array = quellochetipare($ARRAYNUMERI11);

    echo '<pre>non ripetuti
    ';
    print_r($array[0]);
    echo '</pre>';
    echo '

    <pre>ripetuti
    ';
    print_r($array[1]);
    echo '</pre>';

    Così mi da errore solito...

    Warning: array_push(): First argument should be an array in ecc...

    e tutti questi altri...

    Notice: Undefined variable: ARRAYNUMERI11 in
    Warning: array_unique(): The argument should be an array in ...
    Warning: array_diff_assoc(): Argument #1 is not an array in ...
    Warning: array_diff(): Argument #1 is not an array in ...
    Warning: array_diff(): Argument #1 is not an array in ...




  8. #8
    Non ho capito cosa sia quella miriade di array_push iniziali.
    Comunque sicuramente l'errore è nell'array.
    Non servono tutte quelle chiamate ad array_push(), puoi fare semplicemente così:

    Codice PHP:

    $ARRAYNUMERI 
    = array(1,2,3,4,5,6,...) 
    Ciao!

  9. #9
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    purtroppo non posso fare a meno di array_push in quanto...

    Devo aggiungere gli elementi all'array, inizialmente vuoto..., passo passo in base a determinate condizioni soddisfatte o meno... (if ..... else ...) e non tutti insieme...

    Non posso fare a meno di array_push ma sistemarlo meglio.. si... ma come? :master:

    tnx!

  10. #10
    Oltre ad array_push, puoi utilizzare questa sintassi:

    Codice PHP:
    $array[] = 1
    praticamente fa lo stesso che farebbe:

    Codice PHP:
    array_push($array,1); 
    Comunque, il problema attuale è che tu facendo per esempio questo:

    Codice PHP:
    array_push($ARRAYNUMERI,"$NUM4,$NUM5"); 
    vai ad aggiungere a $ARRAYNUMERI un solo elemento stringa.

    Praticamente l'array diventa:

    Array ( ... => ...,
    k => '4,5');
    mentre dovrebbe essere:

    Array ( ... => ...,
    k => 4 , k1 => 5);
    Tra l'altro array_push() non ritorna un'array, quindi poi quando vai ad applicare la funzione la seconda volta lo fai su un intero, ed è ovvio che non funziona -.-

    capito il problema?

    Per risolvere, questo:

    Codice PHP:
    $ARRAYNUMERI2=array_push($ARRAYNUMERI,"$NUM1,$NUM2,$NUM3"); 
    dovrebbe diventare:

    Codice PHP:
    $ARRAYNUMERI2 array_merge($ARRAYNUMERI,array($NUM1,$NUM2,$NUM3)); 

    Prova.

    Ciao!

    P.S: Ti consiglio di studiare bene gli array, hai le idee un bel'pò confuse

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.