检查元素是否在数组中,但排除数组的最后一个元素


Check if element is in array, but exclude array's last element?

如何检查字符串是否已经在数组中,但在检查过程中排除该数组的最后一个元素?到目前为止,我正在使用一种解决方法,如下所示unset()和重新声明:

$fkTableName = $fkTableArr[$colNr0];
unset($fkTableArr[$colNr0]);
if (!in_array($fkTableName, $fkTableArr))
    // do sth
$fkTableArr[$colNr0] = $fkTableName;

但这对我来说似乎是多余的。

使用 array_slice() 对数组进行切片并使用它。下面的代码不包括数组中的最后一个元素。

array_slice($input, -1);

因此,您的代码变为:

$fkTableName = $fkTableArr[$colNr0];
if (!in_array($fkTableName, array_slice($fkTableArr, -1)))
    // do sth

如果您不想影响数组,请尝试以下操作:

if (in_array($fkTableName, $fkTableArr) && $fkTableName != end($fkTableArr)) {
  // element in array, but not last item
}