Örnek:
Ben var ve bu gibi bir dizi:
Array( [0] => Apple [2] => Orange [5] => Pear [8] => Pear )
Eksik dizinleri tamamlamak için bir fonksiyonu vardır: 1,3,4,6,7??
Bu daha büyük diziler için hızlı olmalı. Daha küçük diziler için herhangi bir yöntem yapacağız.
$existingKeys = array_keys($array);
//you can use any value instead of null
$newKeys = array_fill_keys(range(min($existingKeys), max($existingKeys)), null);
$array += $newKeys;
//optional, probably not needed
ksort($array);
boş ise en yüksek ve tam için düşük endeksten () için deneyebilirsiniz
for($i = 0 ;$i <= 8 ; $i++)
{
//if it's not set
if(!isset($array[$i]))
{
//set to empty
$array[$i] = "";
}
}
Ayrıca ilk dizideki elemanların sayısını ve bir fonksiyon içine olabilir
function completeIndexes($array)
{
$total = count($array);
for($i = 0 ;$i < $total ; $i++)
{
//if it's not set
if(!isset($array[$i]))
{
//set to empty
$array[$i] = "";
}
}
return $array;
}
Ne yapmaya çalışıyorsun sen almak çok dizi yeniden düzenlemek ise
Array( [0] => Apple [1] => Orange [2] => Pear [3] => Pear )
Sadece yeni bir Array oluşturun ve içine değerleri kopyalamak. Bu arda yeni endeksler tahsis edecek
yani
$new_array = array();
for( $value in $old_array )
$new_array[] = $value;