空の配列要素を削除する 質問する

空の配列要素を削除する 質問する

配列の一部の要素は、ユーザーからの空の文字列です。$linksArray次の後にも空の要素が残っています。

foreach($linksArray as $link)
{
    if($link == '')
    {
        unset($link);
    }
}
print_r($linksArray);

機能empty()も動作しません。

ベストアンサー1

文字列の配列を扱う場合は、単にarray_filter()、これらすべてを便利に処理します:

$linksArray = array_filter($linksArray);

コールバックが指定されていない場合は、配列のすべてのエントリがFALSEブール値に変換する) は削除されます。したがって、正確な文字列である要素を保持する必要がある場合は'0'、カスタム コールバックが必要になります。

// PHP 7.4 and later
print_r(array_filter($linksArray, fn($value) => !is_null($value) && $value !== ''));

// PHP 5.3 and later
print_r(array_filter($linksArray, function($value) { return !is_null($value) && $value !== ''; }));

// PHP < 5.3
print_r(array_filter($linksArray, create_function('$value', 'return $value !== "";')));

注: 空の要素を削除した後に配列のインデックスを再作成する必要がある場合は、次を使用します。

$linksArray = array_values(array_filter($linksArray));

おすすめ記事