Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922

    [PHP] "monodimensionare" array

    Ciao a tutti.

    Avendo un array del genere
    Codice PHP:
    $array = array("0""1", array("2""3", array("4", array("5""6"), "7""8")), "9"); 
    codice:
    Array
    (
        [0] => 0
        [1] => 1
        [2] => Array
            (
                [0] => 2
                [1] => 3
                [2] => Array
                    (
                        [0] => 4
                        [1] => Array
                            (
                                [0] => 5
                                [1] => 6
                            )
    
                        [2] => 7
                        [3] => 8
                    )
    
            )
    
        [3] => 9
    )
    Come faccio a renderlo unidimensionale?
    codice:
    Array
    (
        [0] => 0
        [1] => 1
        [2] => 2
        [3] => 3
        [4] => 4
        [5] => 5
        [6] => 6
        [7] => 7
        [8] => 8
        [9] => 9
    )
    Se conoscete anche qualche script giā pronto vi ringrazio.

  2. #2
    Prova questa funzione:

    Codice PHP:
    $array = array("0""1", array("2""3", array("4", array("5""6"), "7""8")), "9");
    $new_array=n_to_one_dimension($array);




    function 
    n_to_one_dimension(&$array,$new_array=array()){
        
        foreach(
    $array AS $value)
            if (
    is_array($value))
                
    $new_array=n_to_one_dimension($value,$new_array) ;
            else 
                
    $new_array[] = $value ;
            return 
    $new_array;

    se hai bisogno che tenga anche le chiavi basta che aggiungi l'istruzione al foreach.
    Dovrebbe funzionare.
    dA .. foto di viaggio
    L'esperienza č il tipo di insegnante pių difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  3. #3
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da AnĒkin
    Prova questa funzione:

    Codice PHP:
    $array = array("0""1", array("2""3", array("4", array("5""6"), "7""8")), "9");
    $new_array=n_to_one_dimension($array);




    function 
    n_to_one_dimension(&$array,$new_array=array()){
        
        foreach(
    $array AS $value)
            if (
    is_array($value))
                
    $new_array=n_to_one_dimension($value,$new_array) ;
            else 
                
    $new_array[] = $value ;
            return 
    $new_array;

    se hai bisogno che tenga anche le chiavi basta che aggiungi l'istruzione al foreach.
    Dovrebbe funzionare.
    Togli pure il dovrebbe. E' perfetto come sempre.
    Quando devo usare funzioni ricorsive vado spesso nel pallone.
    Ti ringrazio molto anakin, mi sei sempre di grandissimo aiuto.

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Se dovesse servire a qualcuno ho trovato anche questa funzione che fa perfettamente il suo dovere.
    Codice PHP:
    function ArrayFlatten($Array,$Separator="_",$FlattenedKey='') {
      
    $FlattenedArray=Array();
      foreach(
    $Array as $Key => $Value) {
       if(
    is_Array($Value))
         
    $FlattenedArray=Array_merge($FlattenedArray,
                                     
    ArrayFlatten($Value,$Separator,
                                                   (
    strlen($FlattenedKey)>0
                                                   
    ?$FlattenedKey.$Separator
                                                   
    :"").$Key)
                                                   );
       else
         
    $FlattenedArray[$FlattenedKey.$Separator.$Key]=$Value;
      }
      return 
    $FlattenedArray;
    }

    $nuovo ArrayFlatten($array);
    echo 
    '<pre>';
    print_r($nuovo);
    echo 
    '</pre>'

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.