まず、空要素インデックスとは何かを理解しましょう。
PHP では、配列はキーと値で構成され、それらの対応関係は辞書のキーと値の関係に似ています。 PHP では、配列内のキーは数値または文字列にすることができます。配列からインスタンスを削除すると、インスタンスは配列から削除されますが、そのインデックスは配列内に残ります。配列内のすべての要素を削除しても配列を保持した場合、それは空の配列になり、空の配列のキーはまだ存在します。この空の配列では、キーに対応する値も空であるため、これを空要素インデックスと呼びます。
配列に多くの空の要素インデックスが含まれている場合、これらの空の要素は配列の走査と処理に影響を与えるため、場合によってはこれらの空の要素を削除する必要があります。次に、PHP で配列内の空の要素のインデックスを削除し、インデックスを順番にリセットする方法を見てみましょう。
PHP には、配列内の空の要素インデックスを削除するために使用できる 2 つの非常に便利な関数、array_filter() と array_values() があります。配列の最初の関数は配列内のコールバック関数をフィルタリングするために使用され、2 番目の関数は配列内のすべてのキーのインデックスをリセットするために使用されます。
まず、array_filter() 関数の基本構文を見てみましょう。
array array_filter( array $array [, callable $callback [, int $flag = 0 ]] )
関数は配列をパラメータとして受け取り、フィルタリングされた新しい配列を返します。 2 番目のオプションのパラメーター $callback は、指定された配列内の各要素に対して呼び出されるコールバック関数を指定します。コールバック関数が true を返した場合、要素は新しい配列に含まれます。 false を返した場合、要素は新しい配列から削除されます。
実際の例を見てみましょう:
$array = array("foo", "", "bar", "", "baz"); $filtered_array = array_filter($array); print_r($filtered_array);
上の例では、配列 $array には 5 つの要素が含まれており、そのうちの 2 つは空の要素です。 array_filter() 関数を使用すると、配列内の空の要素が削除され、新しい配列 $filtered_array が返されます。出力は次のとおりです。
Array ( [0] => foo [2] => bar [4] => baz )
上記の結果では、新しい配列 $filtered_array に空の要素インデックスが含まれていないことがわかります。
次に、配列内のすべてのキーのインデックスをリセットする方法を見てみましょう。これは、PHP の組み込みの array_values() 関数を通じて実現できます。この関数は配列をパラメータとして受け取り、すべてのキーが連続した整数にリセットされた新しい配列を返します。
実際的な例を見てみましょう:
$array = array("foo", "bar", "baz"); $indexed_array = array_values($array); print_r($indexed_array);
上の例では、キーなしの配列 $array を指定します。array_values() 関数を使用すると、新しい配列 $ が生成されます。すべてのキーが連続する整数にリセットされる Indexed_array。出力は次のとおりです。
Array ( [0] => foo [1] => bar [2] => baz )
上記の結果では、新しい配列 $indexed_array のキー名が連続した整数に正しく設定されていることがわかります。
これで、これら 2 つの関数を一緒に使用して、空の要素インデックスを含む配列を処理し、キーが再設定されたインデックスを持つ新しい配列を返すことができます。
実際の例を見てみましょう:
$array = array("foo", "", "bar", "", "baz"); $filtered_array = array_filter($array); $indexed_array = array_values($filtered_array); print_r($indexed_array);
上の例では、array_filter() と array_values() という 2 つの関数を使用し、それらを接続します。まず、array_filter() 関数を使用して配列内の空の要素のインデックスを削除し、次に array_values() 関数を使用して新しい配列内のすべてのキーのインデックスをリセットします。出力結果は次のとおりです。
Array ( [0] => foo [1] => bar [2] => baz )
上記の結果では、新しい配列 $indexed_array に空の要素インデックスが含まれておらず、すべてのキーのインデックスが連続した整数にリセットされていることがわかります。
要約すると、array_filter() 関数と array_values() 関数を使用すると、PHP 配列内の空の要素のインデックスを簡単に処理し、新しい配列内のすべてのキーのインデックスを正しく設定できます。 PHP コードの記述に役立ちます。
以上がPHPで配列内の空の要素インデックスを削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。