例:phpの配列に欠けているインデックスを追加するにはどうしたらいいですか?
私はこのような配列:
アレイ( [0] =>アップル [2] =>オレンジ [5] =>ナシ [8] =>ナシ )
欠落しているインデックスを完了する機能があります:1,3,4,6,7 ????
例:phpの配列に欠けているインデックスを追加するにはどうしたらいいですか?
私はこのような配列:
アレイ( [0] =>アップル [2] =>オレンジ [5] =>ナシ [8] =>ナシ )
欠落しているインデックスを完了する機能があります:1,3,4,6,7 ????
は、これはより速く、より大きな配列のために次のようになります。
編集
はちょうど私がやった前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);
何をやろうとしているのは、あなたが
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;
すなわち順次
新しいインデックスを割り当てます配列内の要素の数を関数にラップします。
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;
}
for($i=0;i<count($array);++$i){
$array[$i] = isset($array[$i])? $array[$i] : '';
}
欠けているキーを空の文字列で埋めるだけです。これがあなたに合っているかどうかはわかりません。 P
forループの代わりにarray_Values()を使用します。 – OIS