2012-06-08 9 views
6

何らかの理由で、配列から項目を削除するときに、0,1,2,3,4,5の代わりに0,2,3,4,6,9のようなキーが残っています。私はなぜそれを解決しようとしているのですが、それを整理することなくすべてを整理しなければならないものは、sort()によって整理されます。私は話すことでキーを再入力したいだけです。PHPが配列の数値キーを修正する

答えて

26

array_values()を使用して元の配列の値を取得し、新しい配列に戻します。新しい配列には新しい数値キーが含まれています。キーは必ずしも重要ではありませんので

$new_array = array_values($old_array); 
+0

配列キーが関連付けられている可能性があり、thouseについて知りたいときには、これが機能しないと仮定しなければなりません。 – ThorSummoner

3

、あなただけのarray_values()を通して、あなたの最終的な結果の配列を実行することができます。すべての値がすでに指定された順序で残され、すべてのキーが順次数値にリセットされます。

+0

それは実際には間違っている、誰かが出現の順序ではなく、foreach順序がpreserveredであることを知った人:http://php.net/manual/fr/function.array-values.php#114941 – Sebas

5

配列から要素を削除するには、array_splice()を使用して、キーを同時に変更する必要があります。

array_values()は、re-order your numeric indexesとなる可能性があります(または少なくとも動作しない可能性があるので)注意が必要です。インデックス3の値の後にインデックス0の値を追加した場合、インデックス0の値はarray_values()によって返された配列の最後に配置されますが、最初に表示されます。

関連する問題