簡體   English   中英

給定一個數組數組,如何將所有空值替換為0?

[英]Given an array of arrays, how can I replace all empty values with 0?

示例數組

$myArray[0] = array('23', null, '43', '12');
$myArray[1] = array(null, null, '53', '19');
$myArray[2] = array('12', '13', '14', null);

所有的空值都應替換為0。我希望有人能夠以一種有效的方式進行此操作,也許是我不知道的內置PHP函數。

您可以使用array_walk_recursive函數,以及將null替換為0的回調函數。


例如,考慮數組的聲明方式如下:

$myArray[0] = array(23, null, 43, 12);
$myArray[1] = array(null, null, 53, 19);
$myArray[2] = array(12, 13, 14, null);

注意:我以為您輸入錯誤,並且數組不只包含一個字符串,而是幾個子元素。


您可以使用以下代碼:

array_walk_recursive($myArray, 'replacer');
var_dump($myArray);


使用以下回調functon:

function replacer(& $item, $key) {
    if ($item === null) {
        $item = 0;
    }
}

注意 :

  • 第一個參數通過引用傳遞!
    • 這意味着修改它會修改數組中的相應值
  • 我正在使用===運算符進行比較


然后您將獲得以下輸出:

array
  0 => 
    array
      0 => int 23
      1 => int 0
      2 => int 43
      3 => int 12
  1 => 
    array
      0 => int 0
      1 => int 0
      2 => int 53
      3 => int 19
  2 => 
    array
      0 => int 12
      1 => int 13
      2 => int 14
      3 => int 0

如果單引號是無意的,並且數組具有整數和空值:

for ($i = 0; $i < count($myArray); $i++)
{
    if ($myArray[$i] == null) $myArray[$i] = 0;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM