Crea un array assoc con chiavi e valori uguali da un array normale


85

Ho un array che assomiglia a

$numbers = array('first', 'second', 'third');

Voglio avere una funzione che prenda questo array come input e restituisca un array che assomigli a:

array(
'first' => 'first',
'second' => 'second',
'third' => 'third'
)

Mi chiedo se sia possibile usare array_walk_recursiveo qualcosa di simile ...


wow, grazie per le tue risposte così rapidamente. le prime due risposte funzioneranno, ma stavo solo cercando qualcosa di un po 'più elegante.
jimiyash

Risposte:


172

Puoi usare la array_combinefunzione, in questo modo:

$numbers = array('first', 'second', 'third');
$result = array_combine($numbers, $numbers);

1
Questo è ottimo per le battute. Ecco un caso d'uso per il mese di scadenza: $ months = array_combine (range (date ('Y'), date ('Y') + 10), range (date ('Y'), date ('Y') + 10 )).
axiom82

4

Questo semplice approccio dovrebbe funzionare:

$new_array = array();
foreach($numbers as $n){
  $new_array[$n] = $n;
}

Puoi anche fare qualcosa come:

array_combine(array_values($numbers), array_values($numbers))


0

Questo dovrebbe bastare.

function toAssoc($array) {
    $new_array = array();
    foreach($array as $value) {
        $new_array[$value] = $value;
    }       
    return $new_array;
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.