从我的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]);
它有效。 我也尝试过:
if(zero== 0 ) unset($return[zero]);
也可以。 我的数据库中standard_rate的值是double(11,2)类型,值为25.00
为什么会这样?
if(standard_rate == 25.00)
无效?
答案 0 :(得分:2)
如果您显示错误,您会看到&#34; undefined constant standard_rate
,假设为'standard_rate'
&#34;。一个字符串。显然,"standard_rate" == 25.00
是错误的。
if( $return['standard_rate'] == 25) unset($return['standard_rate']);
答案 1 :(得分:1)
应该是:
if($return["standard_rate"] == 25) unset($return["standard_rate"]);
现在让我们看看您的代码有什么问题。
standard_rate
是一个未定义的常量,其数值0
和假定的字符串值"standard_rate"
,所以......
if(standard_rate == 25.00)
无法使用,因为0不等于25(数字比较)。
if(standard_rate == '25.00')
无效,因为字符串"standard_rate"
和"25.00"
不相等(字符串比较)。
if(standard_rate <= 25.00)
将起作用,因为0小于25(数字比较)。