我有这段代码:
$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
我认为是错的,我是对的?
答案 0 :(得分:3)
explode
函数返回数组,因此请检查数组echo sizeof($aliasArr) > 1 ? 'true' : 'false';
的长度(如果未找到分割值,则长度为1)
答案 1 :(得分:3)
一旦你爆炸它就会得到一个包含一个元素的数组。之后它总是一个数组。另一种方法可能是检查数组的长度,以确定它是否只有一个元素或多个元素。
答案 2 :(得分:2)
explode()
始终返回一个数组 - 即使它只是一个元素,请参阅official documentation。
只需将is_array($aliasArr)
替换为
count($aliasArr) > 1
获取您正在寻找的功能。
答案 3 :(得分:2)
两件事: -
1。(,)
被称为comma
而不是column
(可能在您的问题中可能是拼写错误)
2.无论何时explode()
,你总会得到一个数组(一个元素数组或一个多个值的数组)。
所以你需要检查echo (sizeof($aliasArr)>1) ? 'true' : 'false';
或者您也可以使用count($aliasArr)>1