[英]Can't assign 0 to an array if it was in an assocc in php.
这是一些php代码。 在关联数组中明确找到0。 如果我尝试将其放在另一个中,则不会被分配。 我知道如何解决这个问题的唯一方法是使用===
明确检查它是否为0。 这是唯一的方法吗?
<?php
$vars['one'] = '31234';
$vars['two'] = 'sldf';
$vars['three'] = 1 - 1;
$return_array = [];
foreach ($vars as $key => $value){
echo "---------------Just value<br>";
var_dump($value);
echo "<br>";
$value != '' ? ($return_array[$key] = $value) : null;
echo "---------------array of key<br>";
var_dump($return_array[$key]);
echo "<br>";
}
?>
我回来了这好东西。
---------------Just value
string(5) "31234"
---------------array of key
string(5) "31234"
---------------Just value
string(4) "sldf"
---------------array of key
string(4) "sldf"
---------------Just value
int(0)
---------------array of key
NULL
还有什么比if ($key === 0) { // stuff }
更好的方法吗?
您在执行$value != ''
时使用“松散比较”。 对于0也将其评估为false。 见松动的比较表在这里 。
如果使用$value !== ''
,它将在数组中插入0。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.