"09", 3=>"13", 4=>"15", 5=>"17", 6=>"19"); 这里可以看到没有-6ren">
gpt4 book ai didi

php - 数组检查 undefined offset php

转载 作者:可可西里 更新时间:2023-11-01 12:26:55 25 4
gpt4 key购买 nike

我会试着解释一下。

我有一个数组:

 $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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com