如果数组位于 php 中的关联中,则无法将 0 分配给该数组。

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 != '' 时正在使用 "loose comparison"。对于 0,这也评估为 false。请参阅 table 进行松散比较 here

如果您改用 $value !== '',它会将 0 插入到数组中。