我目前正在开发一个 php 项目,我正在尝试使用 foreach 遍历一个数组。但是,有时数组可能只包含 1 个项目,因此当我尝试执行 foreach 时,它会失败,因为 1 个项目只是被视为普通变量。
有没有办法让 php 认为 1 项数组实际上是一个数组而不仅仅是一个变量,这样我就不会收到这个错误。
谢谢你的帮助。
foreach
将适用于大小为 0,1 或更大的数组。我怀疑您的问题是,该变量实际上并不包含数组,而是一些标量值-在这种情况下,请使用类似
if (!is_array($var)) $var=array($var);
foreach ($var as $item) {
//...
}
if(is_array($arr))
$arr2=$arr
else
$arr2=array($arr)
然后你迭代$arr2
我建议只使用标准 for 循环。无论数组的长度是多少,它都应该工作
for($i = 0, $l = count($myArray); $i < $l; $i+=1){
//code in here
}
但是您的阵列很可能开始出现问题。发布结构会有所帮助,或者您应该 var_dump 它以确保它确实是一个数组。