2009-04-08 25 views

答えて

3

は、これはより速く、より大きな配列のために次のようになります。

編集

はちょうど私がやった前Perr0_hunterはほとんど同じことを書いて気づきました。より小さな配列の場合は、どのメソッドでもできます。

$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); 
-1

何をやろうとしているのは、あなたが

Array([0] => Apple [1] => Orange [2] => Pear [3] => Pear) 

ただ、新しい配列を作成し、そこに値をコピーし得るように、配列を並べ替えている場合。それはあなたがそれが空

for($i = 0 ;$i <= 8 ; $i++) 
{ 
//if it's not set 
if(!isset($array[$i])) 
{ 
//set to empty 
$array[$i] = ""; 
} 

} 

だ場合はさらに、あなたが最初に数えることができる最高と完全に最低のインデックスから()のために試みることができる

$new_array = array(); 
for($value in $old_array) 
    $new_array[] = $value; 
+0

forループの代わりにarray_Values()を使用します。 – OIS

1

すなわち順次

新しいインデックスを割り当てます配列内の要素の数を関数にラップします。

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; 
    } 
1
for($i=0;i<count($array);++$i){ 
    $array[$i] = isset($array[$i])? $array[$i] : ''; 
} 

欠けているキーを空の文字列で埋めるだけです。これがあなたに合っているかどうかはわかりません。 P

関連する問題