• User

    Problema cambio chiavi in array.

    Ciao a tutti ragazzi!

    Avrei un problema: vorrei cambiare le chiavi di un'array in relazione ai valori di un altro array.

    Array 1: array( [4] => 5000, [6] => 3000, [7] => 2000, [9] => 1000)
    Array 2: array ( [0] => Array ( [0] => 5000 [1] => xxx [2] => xxx [3] => xxx )** [1] => Array ( [0] => 3000 [1] => xxx [2] => xxx [3] => xxx ) ** [2] => Array ( [0] => 2000 [1] => xxx [2] => xxx [3] => xxx ) ** [3]** => Array ( [0] => 1000 [1] => xxx [2] => xxx [3] => xxx ) )

    Vorrei fare in modo che le chiavi del secondo array vengano cambiate in modo che risultino uguali a quelle del primo array.

    [0] dovrebbe diventare [4], [1] dovrebbe diventare [6] e così via.

    Grazie in anticipo.


  • User

    Mi rispondo da solo 😄 Così magari sarò d'aiuto a qualcun'altro nella mia stessa situazione.

    
    $array1 = array(4=>5000,6 => 3000, 7 => 2000, 9 => 1000);
    $array2 =array(0=>array(...),1=>array(...),2=>array(...),3=>array(...));
    
    //trovo le chiavi del primo array
    $keys = $keys = array_keys($array1);
    
    //metto il pointer all'inizio dell'array
    reset($keys);
    
    //faccio un ciclo dove cancello la chiave corrente e la sostituisco in base alle chiavi del secondo array.
    foreach ($array2 as $k => $v) {
       unset ($array2[$k]);
    
       $new_key =  current($keys);
       next($keys);
       $array2[$new_key] = $v;
    }
    
    /*
    RETURN
    $array2 =array(4=>array(...),6=>array(...),7=>array(...),9=>array(...));
    */
    
    
    

    Ciao a tutti !!! e buona giornata!