2011-09-26 9 views
95

Ben şimdi size [2] i yapmanız gereken eksik gördüğünüz gibiPHP reindex dizisi? [3 - onlar [0] gösterilecek şekilde

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

benziyor bazı endeksler yoketmek zorunda dizi var sıfırlama indeksleri ise ].

+0

Bu kesinlikle bir kopya değil deneyin [PHP bir diziyi tekrar dizine nasıl **? **] (http://stackoverflow.com/questions/591094/nasıl-re-you-reindex-an-array-in-php) Bir çözüm paylaşımı ikilik oluşturmaz. –

cevap

212

kullanın array_values.

$myArray = array_values($myArray); 

Ayrıca diğer bazı php fonksiyonu yani tuşları korumak dizini sıfırlamamanızı:

$myarray = array_values($myarray); 
+1

Bunu seviyorum. PHP'nin yapamayacağı bir şey var mı? (buna cevap verme) – pbarney

70
$myarray = array_values($myarray); 

array_values

+16

Cevabınız kabul edilen yanıttan 21 saniye önceydi. – Sonny

10

array_values ​​işi yapar.

2

Bu, array_values ​​() işlevine kıyasla en basit yanıt olmayabilir.

bu

$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