php - 数组检查 undefined offset php

标签 php arrays if-statement for-loop

我会试着解释一下。

我有一个数组:

 $arrayTime = array(0=>"07",1=>"09", 3=>"13", 4=>"15", 5=>"17", 6=>"19");

这里可以看到没有定义offset 2 现在我需要 for 我的 array 并在 offset 2 上推送数字 0(例如) 我试过用这个:

if($arrayTime[$i]==""){
   $arrayTime[$i]=0;
}

是的,它可以工作,但是 50 到 50 个 array 看起来像这样:

$arrayTime = array(0=>"07",1=>"09", 3=>"13", 4=>"15", 5=>"17", 6=>"19",2=>"0");

但是在 if 所在的行会抛出一个错误:

Notice: Undefined offset: 2 in C:\wamp\www\xxx.php on line 10

所以我需要相同的结果,但没有错误。 感谢大家的帮助:)

最佳答案

首先,它不会抛出错误。它会向您发出有关代码中可能存在错误的警告。

if($arrayTime[$i]==""){}

这将尝试访问 $arrayTime[$i] 以检索一个值以与您的空字符串进行比较。

尝试读取使用一个不存在的数组索引来获取比较值是它抛出警告的原因,因为这通常是出乎意料的。当 key 不存在时,将使用 null 并继续执行代码。

if(null == ""){} // this evaluates to true.

因为您要与空字符串 "" 进行比较,所以您的答案将是 empty():

if(empty($arrayTime[$i])){}

这意味着您期望键不存在,同时您正在检查是否为空。查看type comparison table查看什么是“空”,什么不是“空”。

同样的规则适用于isset()is_null(),如果key不存在则不会抛出通知。因此,请选择最能满足您需求的功能。

请记住,通过使用这些函数中的任何一个,您都是在检查 并且不是key 是否存在于数组中。您可以使用 array_key_exists()为此。

if(array_key_exists($i, $arrayTime)){}

关于php - 数组检查 undefined offset php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43036183/

相关文章:

javascript - 在javascript中用另一个替换重复的数组对象值

php - MySQL 选择空间字段值并使用 PHP 转换为 WKT

php - 网页仍在加载 - 检查它正在等待什么

php - 将变量内的字符串与数组进行匹配的正确语法

c - C 中的字符串中添加了不需要的字符

Swift - 如何在 func 中使用用户输入和 if 语句来决定输出

php - 将 javascript prompt() 保存到 mysql

javascript - 数组在 jquery 中给出了一个未定义的

c - 根据位置每 3 个元素从数组中删除元素

r - 如何在R中使用if containsimilar,then