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

Minahil Noor 2023年1月30日
  1. PHP で array_filter() 関数を使用して空の配列要素を削除する
  2. PHP で array_diff() 関数を使用して空の配列要素を削除する
  3. PHP で unset() 関数を使用して空の配列要素を削除する
PHP で空の配列要素を削除する方法

この記事では、PHP の空の配列要素を削除するメソッドを紹介します。

  • array_filter() 関数を使用する
  • array_diff() 関数を使用する
  • unset() 関数を使用する

PHP で array_filter() 関数を使用して空の配列要素を削除する

組み込み関数 array_filter() は、すべての空の要素、ゼロ、falsenull 値を array から削除します。この関数は、コールバック関数を使用して配列値をフィルター処理します。コールバック関数が指定されていない場合、空の要素、ゼロ、falsenull 値が削除されます。

この関数を使用するための正しい構文は次のとおりです

array_filter($arrayName, $callbackFunction, $callbackParameter)

ここで、$arrayName は唯一の必須パラメーターです。パラメータ$callbackFunction は、配列の操作に対して指定されたコールバック関数です。パラメータ $callbackParameter は、コールバック関数に渡されるパラメータを示します。

<?php
//Declare the array
$flowers = array(
                "Rose",
                "Lili",
                "Jasmine",
                0,
                "Hibiscus",
                "",
                "Tulip",
                null,
                "Sun Flower",
                "Daffodil",
                "Daisy");

$flowers = array_filter($flowers);
echo "The array is:\n";
print_r($flowers);
?>

コールバック関数を指定していないため、返される配列には空の要素、ゼロ、null 値がありません。

出力:

The array is:
Array
(
    [0] => Rose
    [1] => Lili
    [3] => Jasmine
    [4] => Hibiscus
    [6] => Tulip
    [8] => Sun Flower
    [10] => Daffodil
    [11] => Daisy
)

PHP で array_diff() 関数を使用して空の配列要素を削除する

組み込み関数 array_diff() は、2つ以上の配列の違いを見つけるために使用されます。配列から空の要素を削除するために使用できます。配列のインデックスは再作成しません。この関数を使用するための正しい構文は次のとおりです

array_diff($array1, $array2, $array3, ... , $arrayN);

N 個のパラメーター(配列)を取ります。最初の配列を他のすべての配列と比較します。他の配列には存在しない最初の配列のすべての要素を含む配列を返します。

<?php
//Declare the array
$flowers = array(
                "Rose",
                "Lili",
                "Jasmine",
                0,
                "Hibiscus",
                "",
                "Tulip",
                null,
                "Sun Flower",
                "Daffodil",
                "Daisy");

$flowers = array_diff($flowers, array("",0,null));
echo "The array is:\n";
print_r($flowers);
?>

ここでは、配列を空の文字列、0、null 値を含む配列と比較しました。その場合、返される配列には空の要素がありません。

出力:

The array is:
Array
(
    [0] => Rose
    [1] => Lili
    [3] => Jasmine
    [4] => Hibiscus
    [6] => Tulip
    [8] => Sun Flower
    [10] => Daffodil
    [11] => Daisy
)

PHP で unset() 関数を使用して空の配列要素を削除する

unset() 関数は、変数に格納されている値を削除します。これを使用して、配列から空の要素を削除できます。この関数を使用するための正しい構文は次のとおりです

unset($variableName);

1つのパラメーター $variableName のみを受け入れます。$variableName は値を削除したい変数です。

<?php
//Declare the array
$flowers = array("Rose","Lili","","Jasmine","Hibiscus","Tulip","Sun Flower","","Daffodil","Daisy");
foreach($flowers as $key => $link) 
{ 
    if($link === '') 
    {
        unset($flowers[$key]); 
    } 
} 
echo "The array is:\n";
print_r($flowers);
?>

ここでは、foreach ループを使用して空の配列要素を検索しています。配列要素が空の場合、そのインデックスと配列名がパラメータとして unset() 関数に渡されます。

出力:

The array is:
Array
(
    [0] => Rose
    [1] => Lili
    [3] => Jasmine
    [4] => Hibiscus
    [5] => Tulip
    [6] => Sun Flower
    [8] => Daffodil
    [9] => Daisy
)

関連記事 - PHP Array