Dol*_*lis 11 php arrays for-loop if-statement
我会试着解释一下.
我有一个array:
$arrayTime = array(0=>"07",1=>"09", 3=>"13", 4=>"15", 5=>"17", 6=>"19");
Run Code Online (Sandbox Code Playgroud)
在这里你可以看到没有定义offset 2
,现在我需要for我array和offset 2推送号码0(例如)我尝试使用这个:
if($arrayTime[$i]==""){
$arrayTime[$i]=0;
}
Run Code Online (Sandbox Code Playgroud)
是的它有效,但50到50 array看起来像这样:
$arrayTime = array(0=>"07",1=>"09", 3=>"13", 4=>"15", 5=>"17", 6=>"19",2=>"0");
Run Code Online (Sandbox Code Playgroud)
但是在if哪一行它会抛出一个错误:
注意:未定义的偏移量:第10行的C:\ wamp\www\xxx.php中的2
所以我需要相同的结果,但没有错误.谢谢你的帮助:)
Xor*_*lse 22
首先,它不会抛出错误.它会为您提供有关代码中可能存在的错误的警告.
if($arrayTime[$i]==""){}
Run Code Online (Sandbox Code Playgroud)
这会尝试访问 $arrayTime[$i]以检索要与空字符串进行比较的值.
要尝试阅读 和 使用一个不存在的数组索引,以获取比较的价值就是它抛出的警告,因为这通常是意外的原因.当使用密钥不存在时null,代码继续执行.
if(null == ""){} // this evaluates to true.
Run Code Online (Sandbox Code Playgroud)
因为您要与空字符串进行比较"",所以您的答案是empty():
if(empty($arrayTime[$i])){}
Run Code Online (Sandbox Code Playgroud)
这意味着您希望密钥不存在,同时您正在检查空值.请参阅类型比较表以查看什么是什么以及什么不被认为是"空".
该规则同样适用于isset()和is_null(),它不会抛出的通知,如果该键不存在.因此,选择最能满足您需求的功能.
请记住,通过使用这些函数中的任何一个,您将检查值,而不是数组中是否存在该键.你可以用array_key_exists()它.
if(array_key_exists($i, $arrayTime)){}
Run Code Online (Sandbox Code Playgroud)