2011-09-26 8 views
95

ho array che ho dovuto disinserire alcuni indici così ora sembra cheRiindex array PHP?

$myarray [0] a->1 
     [1] a-7 b->3 
     [3] a-8 b->6 
     [4] a-3 b->2 

come si può vedere [2] che manca tutto quello che dovete fare è indici di ripristino in modo che mostrano [0] - [3 ].

+0

Questo non è sicuramente un duplicato di [** Come si fa a REINDEX un array in PHP? **] (http://stackoverflow.com/questions/591094/how-do-you-reindex-an-array-in-php) La condivisione di una soluzione non stabilisce la duplicità. –

risposta

212

Usa array_values.

$myarray = array_values($myarray); 
+1

Lo adoro. C'è qualcosa che PHP non può fare ?! (non rispondere a questo) – pbarney

70
$myarray = array_values($myarray); 

array_values

+16

La tua risposta era 21 secondi prima della risposta accettata. – Sonny

10

array_values ​​fa il lavoro:

$myArray = array_values($myArray); 

anche qualche altra funzione php NON mantenere le chiavi, cioè reimpostare l'indice.

2

Questa potrebbe non essere la risposta più semplice rispetto all'utilizzo di array_values ​​().

Prova questa

$array = array(0 => 'string1', 2 => 'string2', 4 => 'string3', 5 => 'string4'); 
$arrays =$array; 
print_r($array); 
$array=array(); 
$i=0; 
    foreach($arrays as $k => $item) 
    { 
    $array[$i]=$item; 
     unset($arrays[$k]); 
     $i++; 

    } 

print_r($array); 

Demo