Php 为什么未设置数组值的行为是意外的?

Php 为什么未设置数组值的行为是意外的?,php,arrays,unset,Php,Arrays,Unset,从my db返回一个数组,然后希望通过unset清理此数组: 我返回的数组如下所示: Array ( [standard_rate] => 25.00 [reduced_rate] => 20.00 [super_reduced_rate] => 15.00 [zero] => 0.00 [other] => 0.00 ) 如果standard_rate=25,我想在没有standard_rate的情况下得到这个数组,所以我会: if(standard_rate

从my db返回一个数组,然后希望通过unset清理此数组: 我返回的数组如下所示:

Array ( [standard_rate] => 25.00 [reduced_rate] => 20.00 [super_reduced_rate] => 15.00 [zero] => 0.00 [other] => 0.00 ) 
如果standard_rate=25,我想在没有standard_rate的情况下得到这个数组,所以我会:

if(standard_rate == 25.00 ) unset($return[standard_rate]);
这不起作用,或者

if(standard_rate == '25.00' ) unset($return[standard_rate]);
这是行不通的。然而,当我这样做时:

    if(standard_rate <= 25.00 ) unset($return[standard_rate]);
同样有效。 my db中的标准_率值为double(11,2)型,值为25.00

为什么会这样

如果(标准利率=25.00)

不工作?

应该是:

if($return["standard_rate"] == 25) unset($return["standard_rate"]);
现在让我们看看你的代码有什么问题

standard\u rate
是一个未定义的常数,它具有数值
0
和假定的字符串值
“standard\u rate”
,因此

如果(标准利率=25.00)
将不起作用,因为0不等于25(数值比较)

if(standard_rate=='25.00')
将不起作用,因为字符串
的“standard_rate”
的“25.00”
不相等(字符串比较)

if(标准利率应为:

if($return["standard_rate"] == 25) unset($return["standard_rate"]);
现在让我们看看你的代码有什么问题

standard\u rate
是一个未定义的常数,它具有数值
0
和假定的字符串值
“standard\u rate”
,因此

如果(标准利率=25.00)
将不起作用,因为0不等于25(数值比较)

if(standard_rate=='25.00')
将不起作用,因为字符串
的“standard_rate”
的“25.00”
不相等(字符串比较)

if(标准利率应为:

if($return["standard_rate"] == 25) unset($return["standard_rate"]);
现在让我们看看你的代码有什么问题

standard\u rate
是一个未定义的常数,它具有数值
0
和假定的字符串值
“standard\u rate”
,因此

如果(标准利率=25.00)
将不起作用,因为0不等于25(数值比较)

if(standard_rate=='25.00')
将不起作用,因为字符串
的“standard_rate”
的“25.00”
不相等(字符串比较)

if(标准利率应为:

if($return["standard_rate"] == 25) unset($return["standard_rate"]);
现在让我们看看你的代码有什么问题

standard\u rate
是一个未定义的常数,它具有数值
0
和假定的字符串值
“standard\u rate”
,因此

如果(标准利率=25.00)
将不起作用,因为0不等于25(数值比较)

if(standard_rate=='25.00')
将不起作用,因为字符串
的“standard_rate”
的“25.00”
不相等(字符串比较)


if(standard_rate如果显示错误,您将看到“undefined constant
standard_rate
,假设
'standard_rate'
”。一个字符串。显然,
“standard_rate”==25.00
是错误的

if( $return['standard_rate'] == 25) unset($return['standard_rate']);

如果显示了错误,您将看到“未定义的常数
标准利率
,假设
为“标准利率”
”。一个字符串。显然,
“标准利率”==25.00
为假

if( $return['standard_rate'] == 25) unset($return['standard_rate']);

如果显示了错误,您将看到“未定义的常数
标准利率
,假设
为“标准利率”
”。一个字符串。显然,
“标准利率”==25.00
为假

if( $return['standard_rate'] == 25) unset($return['standard_rate']);

如果显示了错误,您将看到“未定义的常数
标准利率
,假设
为“标准利率”
”。一个字符串。显然,
“标准利率”==25.00
为假

if( $return['standard_rate'] == 25) unset($return['standard_rate']);

你是对的。一开始这并没有改变任何事情,所以我的数组实际上并没有达到应有的水平。现在我又回到了正轨,谢谢。你是对的。一开始这并没有改变任何事情,所以我的数组实际上并没有达到应有的水平。现在我又回到了正轨,谢谢。你是对的。一开始这并没有改变任何东西事实证明,我的阵列实际上不是应该的。现在我又回到了正轨,谢谢。你是对的。起初这并没有改变任何事情,所以结果证明我的阵列实际上不是应该的。现在我又回到了正轨,谢谢。