簡體   English   中英

preg_grep沒有返回正確的結果

[英]preg_grep does not return the right results

以下代碼不會捕獲45.00的結果:

$array = array(50,45.00,34,56,6.67);
$fl_array = preg_grep("/^(\d+)?\.(\d)+$/", $array);

有什么建議嗎?

如果執行var_dump($array); 你會得到:

array(5) {
  [0]=> int(50)
  [1]=> float(45)
  [2]=> int(34)
  [3]=> int(56)
  [4]=> float(6.67)
}

PHP將45.00轉換為45 這就是為什么找不到正則表達式的原因。

您只能插入字符串。

$array = array("50","45.00","34","56","6.67");

然后它將開始工作。

另一個選擇是僅過濾數組中的浮點數:

$array = array(50,45.00,34,56,6.67);
$fl_array = array_filter($array, function($item) {
    return is_float($item);
});

暫無
暫無

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

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