Örnek:
$arr = array(1 => 'Foo', 5 => 'Bar', 6 => 'Foobar');
/*... do some function so $arr now equals:
array(0 => 'Foo', 1 => 'Bar', 2 => 'Foobar');
*/
Diğer yanıtlar eklemek için array_values()
dize anahtarlarını korumak değildir. Diziniz dize anahtarları ve sayısal tuşlar (muhtemelen kötü tasarımın bir göstergesidir, ancak yine de ortaya çıkabilir ki) bir karışımı varsa, sizin gibi bir işlevi kullanabilirsiniz:
function reset_numeric_keys($array = array(), $recurse = false) {
$returnArray = array();
foreach($array as $key => $value) {
if($recurse && is_array($value)) {
$value = reset_numeric_keys($value, true);
}
if(gettype($key) == 'integer') {
$returnArray[] = $value;
} else {
$returnArray[$key] = $value;
}
}
return $returnArray;
}
Ben biliyorum değil ki, zaten kontrol olabilir fonksiyonları here
ama basit bir fonksiyon kendimi yazarken hayal edebiliyorum
resetarray($oldarray)
{
for(int $i=0;$i<$oldarray.count;$i++)
$newarray.push(i,$oldarray[i])
return $newarray;
}
Ben sözdizimi biraz sinirli değilim ama ben u fikrim var sanırım.