首页 > 解决方案 > PHP——删除最后一个元素后数组是否为空?

问题描述

我正在从 PHP 中的数组中删除一个元素:

$images = array('img1.jpg', 'img2.jpg', 'img3.jpg', 'no-image.jpg');
if (in_array('no-image.jpg', $images)) {
  $imgIndex = array_search('no-image.jpg', $images);
  array_splice($images, $imgIndex, 1);
}

然后我正在检查以确保$images数组不为空:

if (!empty($images)) {
  //Some code
}

但是如果我的数组只包含no-image.jpg并且我删除它,会empty()返回真还是假?

标签: phparraysis-empty

解决方案


是的,您的数组将评估为空。来自 PHP 手册:

The following values are considered to be empty:

"" (an empty string)
0 (0 as an integer)
0.0 (0 as a float)
"0" (0 as a string)
NULL
FALSE
array() (an empty array)

所以:

$images = array('no-image.jpg');
if (in_array('no-image.jpg', $images)) {
  $imgIndex = array_search('no-image.jpg', $images);
  array_splice($images, $imgIndex, 1);
}
echo var_dump(empty($arr)); //Will output bool(true)

和:

$images = array('img1.jpg', 'img2.jpg', 'img3.jpg', 'no-image.jpg');
if (in_array('no-image.jpg', $images)) {
  $imgIndex = array_search('no-image.jpg', $images);
  array_splice($images, $imgIndex, 1);
}
echo var_dump(empty($arr)); //Will output bool(false)

推荐阅读