Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Riordinare array in base agli indici

    Ciao a tutti.
    Mi sto perdendo in un bicchier d'acqua..
    Mi vengono passati da un form questi array (con indici "7,8,3,22" non sempre ordinati e non sempre presenti - vedi array3):

    Array1
    (
    [7] => 1
    [8] => 1
    [3] => 1
    [22] => 1
    )

    Array2
    (
    [7] => 0
    [8] => 0
    [3] => 1
    [22] => 0
    )

    Array3
    (
    [3] => 1
    )

    Vorrei creare un nuovo array così:

    Arrayresult [3] ( 1, 1, 1 )
    Arrayresult [7] ( 1, 0, 0 )
    Arrayresult [8] ( 1, 0, 0 )
    Arrayresult [22] ( 1, 0, 0 )

    Scusate se mi sono spiegato male ma spero l'esempio possa farlo meglio.
    Grazie ciao.

  2. #2
    ma tu, a prescindere, sai il numero massimo di array e il numero massimo di indici che tali array possono contenere oppure è variabile?

    cmq basta che semplicemente ti fai un array di appoggio, poi ti fai

    per ogni array as $indice => valore

    se indice esiste in array_appoggio alora array_appoggio[indice][] = valore
    altrimenti
    array_appoggio[indice] = array(valore)

    ovviamente devi ciclare su tutti gli array che ti interessano
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    Originariamente inviato da Santino83_02
    ma tu, a prescindere, sai il numero massimo di array e il numero massimo di indici che tali array possono contenere oppure è variabile?
    appunto, è proprio questo: il numero max di array lo so, ma non conosco il range degli indici.
    comunque provo a fare come mi hai detto, grazie intanto!

  4. #4
    hey, ma dov'è che sbaglio? forse nel concatenare gli indici?

    foreach ($array1 as $key => $value) {
    $array_result[$key][$valore1]=$value;
    }
    foreach ($array2 as $key => $value) {
    $array_result[$key][$valore2]=$value;
    }

  5. #5
    found! devo metterlo come chiave descrittiva..

    foreach ($array1 as $key => $value) {
    $array_result[$key]['valore1']=$value;
    }
    foreach ($array2 as $key => $value) {
    $array_result[$key]['valore2']=$value;
    }


  6. #6
    Originariamente inviato da davidino80
    found! devo metterlo come chiave descrittiva..

    foreach ($array1 as $key => $value) {
    $array_result[$key]['valore1']=$value;
    }
    foreach ($array2 as $key => $value) {
    $array_result[$key]['valore2']=$value;
    }

    brav
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  7. #7
    ok ho fatto passi avanti, ora sono a questo:

    Array1
    (
    [16] => Array
    (
    [presenze] => 1
    )

    [21] => Array
    (
    [presenze] => 1
    )

    [20] => Array
    (
    [presenze] => 1
    )

    [18] => Array
    (
    [presenze] => 1
    )

    )

    Array2 ( [18] => 1 [20] => 1 [21] => 1 [16] => 1 )


    Vorrei che se viene trovato l'indice numerico uguale (es: 18) lo script faccia una cosa oppure ne faccia un'altra con un semplice if.
    Non riesco a concatenarli, specialmente per il fatto che il primo array è multilivello mentre il secondo no.

    Help!

  8. #8
    aggiungo che gli array non hanno lunghezza uguale: potrebbe essere più lungo il primo o il secondo

  9. #9
    mah non capisco piu che vuoi fare... dacci due array di esempio per il caso piu complesso e dicci come deve venir fuori l'array che ti serve che non ho capito

    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

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.