我有这个代码:
$str = "one, two, three ,four";
$str = "one";
echo $str . PHP_EOL;
$noWhiteSpaces = str_replace(' ', '', $str);
$aliasArr = explode(',', $noWhiteSpaces);
echo is_array($aliasArr) ? 'true' : 'false';
echo PHP_EOL;
背后的想法很简单:如果字符串$str
有逗号 (,),那么$aliasArr
将是一个数组,否则它将是假的。如果您使用第一个$str
测试代码,您将看到如何获得TRUE
作为输出,但如果您尝试使用第二个(覆盖前一个),您将看到TRUE
我认为是错误的,我是对的?
explode
函数返回数组,因此请检查数组的长度echo sizeof($aliasArr) > 1 ? 'true' : 'false';
(如果未找到拆分值,则长度将为 1)
一旦你爆炸它,你就会得到一个包含一个元素的数组。 之后它总是一个数组。 另一种方法可能是检查数组的长度,以确定它是只有一个元素还是多个元素。
explode()
总是返回一个数组——即使它只是一个元素,请参阅官方文档。
只需将is_array($aliasArr)
替换为
count($aliasArr) > 1
获得您正在寻找的功能。
两件事:-
1. (,)
被称为comma
而不是column
(可能是您问题中的错别字错误)
2.每当您explode()
时,您总是会得到一个数组(一个元素数组或具有多个值的数组)。
所以你需要检查echo (sizeof($aliasArr)>1) ? 'true' : 'false';
或者您也可以使用count($aliasArr)>1