ホームページ > バックエンド開発 > PHPの問題 > PHPは配列から空のデータを削除します

PHPは配列から空のデータを削除します

WBOY
リリース: 2023-05-24 14:23:38
オリジナル
473 人が閲覧しました

PHP では、配列は非常に一般的に使用されるデータ型であり、データのセットを格納するために使用できます。しかし、日々の開発では、配列内の空のデータを削除する必要がある状況に遭遇することがよくあります。この記事では、PHP コードを記述して配列内の空のデータを削除する方法を紹介します。

この記事の内容をより深く理解するには、まず配列とは何か、空のデータとは何かを理解する必要があります。

配列は、順序付けられた値のコレクションとして理解でき、それぞれの値には一意の識別子 (インデックス) を介してアクセスできます。 PHP では、array() 関数または簡潔な [] 構文を通じて配列を作成できます。 PHP 配列の例を次に示します。

$array = array("apple", "orange", "banana", "");
ログイン後にコピー

上の例では、4 つの要素を持つ配列を作成しました。4 番目の要素は空の文字列です。

空のデータとは、配列内の値が null、空の文字列、空の配列、false、0、または属性のないオブジェクトであるデータを指します。 PHP では、empty() 関数を使用して、変数に空のデータがあるかどうかを判断できます。

これで、配列内の空のデータを削除する方法を正式に紹介し始めることができます。一般的に使用される 2 つの方法は次のとおりです。

方法 1

PHP の組み込みの array_filter() 関数を使用します。この関数は、配列内の要素をコールバック関数に渡し、コールバック関数の戻り値に基づいて要素を保持するかどうかを決定できます。たとえば、次のコードは、値が null、false、空の文字列、空の配列、および 0 である要素を配列から削除します。

$array = array("apple", "", "orange", null, "banana", false, array(), 0);
$array = array_filter($array, function ($item) {
    if (is_array($item) && count($item) == 0) {
        return false; // 保留非空数组
    }
    return !empty($item); // 剔除空字符串、null、false、0
});
ログイン後にコピー

上記のコードでは、まず、次の要素を含む配列を作成します。様々な種類の配列がございます。次に、array_filter() 関数を呼び出し、匿名関数を渡します。無名関数では、配列内の要素を処理し、ブール値を返します。この値が true の場合、要素は保持され、それ以外の場合は削除されます。

匿名関数では、配列内の要素に対して特別な処理を実行することに注意してください。要素の値が配列の場合、それが空の配列であるかどうかを判断し、空の配列である場合はそれを保持する必要があります。これは、PHP では空の配列も null 値とみなされるためです。

最後に、空のデータを含まない新しい配列を取得します。以下は、print_r() 関数を使用して新しい配列を出力した結果です。

Array
(
    [0] => apple
    [2] => orange
    [4] => banana
)
ログイン後にコピー
ログイン後にコピー

ご覧のとおり、新しい配列には、元の配列の空でない要素のみが含まれています。

方法 2

ループを使用して元の配列を走査し、空のデータを削除します。この方法は比較的単純ですが、ループ コードを手動で記述する必要があります。たとえば、次のコードでは、foreach ループを使用して配列を反復処理し、配列から空のデータを削除します。

$array = array("apple", "", "orange", null, "banana", false, array(), 0);
foreach ($array as $key => $value) {
    if (is_array($value) && count($value) == 0) {
        unset($array[$key]); // 剔除空数组
    } elseif (empty($value)) {
        unset($array[$key]); // 剔除空字符串、null、false、0
    }
}
ログイン後にコピー

上記のコードでは、最初にさまざまな型の要素を含む配列を作成します。次に、foreach ループを使用して配列をループし、各要素が空のデータかどうかを確認します。その場合は、unset() 関数を使用して要素を削除します。

配列要素を削除するときは、unset($array[$key]) を直接使用するのではなく、unset() 関数を使用することに注意してください。これは、unset($array[$key]) を使用して要素を直接削除すると、配列のインデックスが再作成され、予期しないエラーが発生する可能性があるためです。 unset() 関数を使用すると、この問題を回避できます。

最後に、空のデータを含まない新しい配列も取得します。以下は、print_r() 関数を使用して新しい配列を出力した結果です。

Array
(
    [0] => apple
    [2] => orange
    [4] => banana
)
ログイン後にコピー
ログイン後にコピー

ご覧のとおり、新しい配列には、元の配列の空でない要素のみが含まれています。

要約すると、これは PHP コードを記述して配列内の空のデータを削除する方法です。 array_filter() 関数を使用する場合でも、ループ トラバーサルを使用する場合でも、配列から空のデータを簡単に削除するのに役立ち、コードがより簡潔で効率的になります。

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

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