PHP array_filter() 函數詳解


定義

array_filter - 用回調函數過濾數組中的元素


描述

array_filter ( array $array [, callable $callback [, int $flag = 0 ]] ) : array

依次將 array 數組中的每個值傳遞到 callback 函數。如果 callback 函數返回 TRUE,則 array 數組的當前值會被包含在返回的結果數組中。
數組的鍵名保留不變。
如果沒有提供 callback 函數, 將刪除 array 中所有等值為 FALSE 的元素。
參數 flag 決定callback接收的參數形式:
ARRAY_FILTER_USE_KEY - 接受鍵名作為的唯一參數,整型 1
ARRAY_FILTER_USE_BOTH - 同時接受鍵名和鍵值,整型 2
兩個系統預定義常量,可通過 get_defined_constants 查看。


示例一

<?php
  function even($var)
  {
      // returns whether the input integer is even
      return(!($var & 1));
  }
  $array = array(6, 7, 8, 9, 10, 11, 12);

  echo "Even:\n";
  print_r(array_filter($array, "even"));
?>

將輸出:

Even:
Array
(
    [0] => 6
    [2] => 8
    [4] => 10
    [6] => 12
)

示例二

不使用回調函數


<?php
  $entry = array(
               0 => 'foo',
               1 => false,
               2 => -1,
               3 => null,
               4 => ''
            );
  print_r(array_filter($entry));
?>

將輸出:

Array
(
    [0] => foo
    [2] => -1
)

總結

感覺可以將是否保留鍵值作為一個可選參數傳入,因為很多情況下想要重新索引,當然可以用array_values實現,但如果能集成在函數內部就更好了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM