• 締切済み

空の配列を削除して、詰めていく。

データベースから値を取ってくるとき、全て、同じ値が入ってくる場合があります。 $a = array(100,100,100,100,100)というような。 これを、array_uniqueで重複している値を削除したのですが、その際、print_rで見ると、 Array ( [4] => 100 ) と表示されました。つまり、キーが0ではなく、4となってしまっています。 array_uniqueで帰ってきた値が複数なら、さらにsortすることで0から始まる配列として並び替えられるのですが、1つしか帰ってこないとsortをしても、キーは変わらないようです。 この値を表示させるとき、countで配列の数を数え、さらにfor文でcountの数だけ回し、print $i;で表示させるようにしているのですが、上記のようにarray_uniqueで1つの値しか帰ってこないと、ページに値がきちんと表示できなくなってしまいます。 これを解決するために、空の要素を削除して、空白でない要素のキーを前に詰めてくれるような関数などを探しているのですが、何か方法などありますでしょうか? Array ( [4] => 100 ) が Array ( [0] => 100 )となるようにしたいのです。 よろしくお願いいたします。

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

#ウチの環境では、Array([0] => 100)となりましたが、 $a = array_values($a); とすればいいと思います。

ikazuti
質問者

お礼

うーん、バージョンによって違うんですかね。 仕方がないので、さらにfor文で別の配列に順番に格納していくような処理をさせて、対処することにします。 ご回答、ありがとうございました。

関連するQ&A