ユーザーが送信した内容に基づいて、配列の一部の要素が空の文字列になっています。これらの要素を削除する必要があります。以下のようなものがあります。
foreach($linksArray as $link)
{
if($link == '')
{
unset($link);
}
}
print_r($linksArray);
しかし、これではうまくいきません。linkArrayは相変わらず空の要素を持っています。また、
empty()`関数でも試してみましたが、結果は同じでした。
文字列の配列を扱っているので、単純にarray_filter()
を使えば、便利に処理してくれます。
print_r(array_filter($linksArray));
コールバックが与えられない場合**、FALSE
(convert to boolean参照)に等しい配列のすべてのエントリが削除されることに注意してください。つまり、正確な文字列 '0'
である要素を保持する必要がある場合は、カスタムコールバックが必要になります。
// PHP < 5.3
print_r(array_filter($linksArray, create_function('$value', 'return $value !== "";')));
// PHP 5.3 and later
print_r(array_filter($linksArray, function($value) { return !is_null($value) && $value !== ''; }));
foreach($linksArray as $key => $link)
{
if($link === '')
{
unset($linksArray[$key]);
}
}
print_r($linksArray);