我有一个预定义的数组$ ar。
$num = count($ar) - 2;
print $ar[$num];
当我尝试做这样的操作时,我总是会遇到错误。我也试过
print $ar[count($ar) - 2];
它再次给了我同样的错误。我很沮丧。走了很多路。没有人工作。我如何使用数学符号??? !!
谢谢, 西
编辑:
这是代码。
$linez = "http://directurl.com/image1.png
http://directurl.com/image2.png
";
$ar = explode("\n",$linez);
$num = count($ar) - 1;
print $num;
它打印2而不是1
答案 0 :(得分:0)
根据您编辑的问题: $ linez中的两个图片网址后面有一条额外的新行。你的数组长度是3,所以你在$ num中得到2个。从$ linez中删除最后一个换行符后,你的数组长度是1 = 2,所以你得到1个$ num
$linez = "http://directurl.com/image1.png
http://directurl.com/image2.png";
$ar = explode("\n",$linez);
$num = count($ar) - 1;
print $num;
它会工作:)演示:https://eval.in/82417
答案 1 :(得分:0)
如果您的数组包含较少的2个元素,count($ar) - 2
会返回一个负数,并且您无法访问负数索引。
您可以使用isset()
检查元素是否存在:
if (isset($ar[count($ar) - 2])) {
print $ar[count($ar) - 2];
} else {
// do anything else
}
如果要访问最后一个数组元素,则应执行:$ar[count($ar) - 1]