如何使用php更改数组值

时间:2015-02-03 13:28:50

标签: php

我有一个数组。我想检查其元素的值并在它们等于0或0.00时更改它们 这是我尝试过的失败的原因:

foreach($returnArray as $arrayElement){
            if($arrayElement === 0 || $arrayElement === 0.00){
                $arrayElement = null;
            }
        }

我想将0或0.00值更改为空值。 $ returnArray是我的主数组,它有一些int和double值。

4 个答案:

答案 0 :(得分:3)

您可以使用array_map(),只测试每个元素的假值(00.00等于false):

$returnArray = array_map(function($a) { return $a ?: null; }, $returnArray);

Here's an example

答案 1 :(得分:2)

只有一个错误,$arrayElement = null;仅在循环内具有范围。你需要

foreach($returnArray as $key=>$arrayElement){
            if($arrayElement == 0 ){
                $returnArray[$key] = null; // This updates the actual array
            }
        }

这样你就可以更新实际的数组元素,即使在循环之后也会保持这种状态。在循环中使用临时变量不会在其外部显示变化。

答案 2 :(得分:2)

PHP将元素作为副本传递给foreach循环。你可以pass the actual element by refence这样:

foreach($returnArray as &$arrayElement){
    if($arrayElement === 0 || $arrayElement === 0.00){
        $arrayElement = null;
    }
}

答案 3 :(得分:1)

并且:

foreach($returnArray as $k => $arrayElement){
            if($arrayElement <= 0){
                $returnArray[$k] = null;
            }
        }