为什么变量与数学运算不起作用?

时间:2013-12-24 07:57:52

标签: php

我有一个预定义的数组$ 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

2 个答案:

答案 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]