PHP配列から空の要素を削除する方法

PHPz
リリース: 2023-04-18 09:54:11
オリジナル
516 人が閲覧しました

開発では、配列操作が非常に一般的であり、配列内に空の要素が存在することがあります。これらの要素は開発に実質的な影響を与えず、予期しないエラーを引き起こす可能性もあります。したがって、開発を改善するには、PHP の配列内の空の要素を削除する必要があります。

1. 空の要素とは何ですか?

PHP 配列において、空の要素とは、配列内の要素に値がないことを意味します。 PHP では、null 値は、null、false、空の文字列、空の配列、および 0 を指します。したがって、次の要素はすべて空の要素です:

$emptyArray = [];
$nullValue = null;
$falseValue = false;
$emptyString = '';
$zeroValue = 0;
ログイン後にコピー

2. 空の要素を削除する方法

PHP には、配列から空の要素を削除するためのメソッドが多数用意されています。一般的に使用される方法は次のとおりです。

  1. array_filter() 関数を使用する

array_filter() は、配列内の要素をフィルタリングして結果を返すことができる PHP によって提供される関数です。フィルタリングされた配列。以下は、array_filter() 関数を使用して空の要素を削除する例です。

$array = ['foo', null, 'bar', '', 'baz', false, ''];
$array = array_filter($array);
print_r($array);
ログイン後にコピー

出力結果は次のとおりです。

Array (
    [0] => foo
    [2] => bar
    [4] => baz
)
ログイン後にコピー

処理された配列によって空の要素が削除されたことがわかります。

  1. foreach ループを使用して空の要素を走査して削除する

array_filter() 関数を使用することに加えて、foreach ループを使用して空の要素を走査して削除することもできます。トラバースプロセス。以下は、foreach ループを使用して空の要素を削除する例です。

$array = ['foo', null, 'bar', '', 'baz', false, ''];
$newArray = [];
foreach ($array as $value) {
  if (!empty($value)) {
    $newArray[] = $value;
  }
}
print_r($newArray);
ログイン後にコピー

出力結果は次のとおりです。

Array (
    [0] => foo
    [1] => bar
    [2] => baz
)
ログイン後にコピー

array_filter() 関数を使用する場合と比較して、foreach ループを使用して空の要素を削除するには、タイムコードが増えますが、配列の柔軟性が高まります。

3. 注意事項

  1. 配列に文字列型の 0 が含まれている場合、array_filter() 関数を使用して削除すると、文字列型の 0 も空とみなされます。要素があるため、特別な注意が必要です。
  2. 配列に配列要素が含まれている場合、array_filter() 関数を使用すると空の配列が削除されるだけで、配列内の空の要素を処理することはできません。
  3. 複数レベルのネストされた配列が含まれる場合、処理はさらに面倒になります。配列を複数回走査し、段階的に処理する必要があります。

4. 概要

PHP では、配列から空の要素を削除することが一般的な要件であり、一般的な方法には、array_filter() 関数の使用や foreach ループのトラバーサルが含まれます。空の要素を削除するときは、文字列タイプ 0 と複数レベルの入れ子配列の状況に注意する必要があります。実際の開発では、状況に応じて適切な方法を選択できます。

以上がPHP配列から空の要素を削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート