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

    Array modificare la chiave non modificando la posizione

    Salve.
    Oggi mi sono trovato con il problema di dover modificare la chiave di un array lasciando però l'ordine dell'array cosi com'é.
    No ho trovato molto in rete quindi ho fatto questo piccolo codice.
    Pensando di fare cosa gradita lo posto sperando che qualcuno lo possa migliorare.

    ciao a tutti
    codice:
    $chiamata='1';
    $modifica='saluto2';
    $test=array('saluto1'=> 'ciao','1'=> 'bello',"saluto3"=>"come va");
    var_dump($test);
    
    static $pos=0;
    static $trov=0;
    foreach( $test  as $key =>$valori){
    
      if($key == $chiamata){
          foreach( $test  as $key1 =>$valori1){
            $neu_array[$key1]=$valori1;
            if($trov==$pos){
              $neu_array[$modifica]=$test[$chiamata];
              unset($neu_array[$chiamata]);
          }
          $trov++;
         }
      }
      $pos++;
    }
    $test=$neu_array ;
    var_dump($test );
    <-------------------------------->
    Se non avessimo difetti, non ci farebbe tanto piacere trovarne negli altri.
    <-------------------------------->
    Andate sempre contro il vento...Solo così imparerete a volare...

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Perché annidare 2 cicli foreach, usare unset e contatori?
    Basta fare così
    Codice PHP:
    $chiamata 1;
    $modifica 'saluto2';
    $test = array('saluto1'=> 'ciao','1'=> 'bello','saluto3'=>'come va');

    print_r($test);

    $new_array = array();
    foreach( 
    $test  as $key => $valori )
    {
        if(
    $key == $chiamata)
        {
            
    $new_array[$modifica] = $valori;
        }
        else
        {
            
    $new_array[$key] = $valori;
        }
    }

    $test $new_array;

    print_r($test); 

  3. #3
    Un pò mi vergogno per quello che ho fatto, non per cercare scuse ma solo perchè cosi stanno le cose, quando faccio qualcosa non la vede mai nessuno ed essendo che sono un autodidatta ( e si vede :-)) non ho mai un riscontro del lavoro fatto.
    Ti ringrazio per il tempo che mi hai dedicato e spero di poter "approfittare" della tua pazienza altre volte.

    Ma come non l'ho potuto vedere
    <-------------------------------->
    Se non avessimo difetti, non ci farebbe tanto piacere trovarne negli altri.
    <-------------------------------->
    Andate sempre contro il vento...Solo così imparerete a volare...

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Nessun problema

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.