array_keys()
是一個在PHP中被廣泛使用的函數,其功能是用於返回數組中所有的鍵名。
一、基本用法
調用array_keys()
的最基本的語法如下:
$array = array( "color" => "blue", "size" => "medium", "shape" => "circle" ); $keys = array_keys($array);
執行array_keys()
函數後,$keys數組會存儲原來數組中所有的鍵名(color,size和shape)。
需要注意的是:array_keys()
函數默認返回所有的鍵名;如果需要返回特定值的鍵名,就需要傳遞第二個可選參數作為限制器。例如:
$array = array( "color" => "blue", "size" => "medium", "shape" => "circle" ); $keys = array_keys($array, "blue");
執行上述代碼後,$keys數組中只會存儲鍵名為color的關聯項。
二、返回鍵名的順序
雖然array_keys()
函數返回數組的所有鍵名,但並沒有確定它們的順序。如果需要按照鍵名排列,我們可以使用第三個可選參數來指定排序方式(升序或降序)。
例如:如果需要按照字母順序升序排序:
$array = array( "color" => "blue", "size" => "medium", "shape" => "circle" ); $keys = array_keys($array); sort($keys);
排序後,$keys數組會依次存儲color,shape和size。
三、使用回調函數過濾鍵名
array_keys()
函數通過使用第二個參數來過濾指定的鍵名,但如果需要更細粒度地篩選鍵名,就需要使用回調函數。
例如:如果想要在數組中查找鍵名包含數字的項,可以使用array_filter()
函數來過濾數組:
$array = array( "color" => "blue", "size1" => "medium", "shape2" => "circle", "not" => "found", ); $keys = array_keys(array_filter($array, function($key) { return preg_match('/[0-9]+/', $key); }));
執行上述代碼後,$keys數組中只會存儲鍵名為size1和shape2的關聯項。
四、批量替換鍵名
我們可以使用array_combine()
函數將一個數組的值作為鍵名,同時使用array_keys()
函數將另一個數組的鍵名提取出來。
例如:將一個數組的所有鍵名以大寫形式存儲到另一個數組中
$array = array( "color" => "blue", "size" => "medium", "shape" => "circle" ); $newKeys = array_combine(array_keys($array), array_map('strtoupper', array_keys($array)));
執行上述代碼後,$newKeys數組中會存儲所有的大寫鍵名。
五、處理多維數組
如果需要處理多維數組,array_keys()
函數可以傳遞第二個可選參數指定從哪一層級開始提取鍵名,以及第三個可選參數指定層數的限制。
例如:從$multiArray多維數組的第二層提取鍵名
$multiArray = array( array("name" => "John", "age" => "20"), array("name" => "Jane", "age" => "25") ); $keys = array_keys($multiArray[0]);
執行上述代碼後,$keys數組會存儲數組中第一個關聯項的所有鍵名(name和age)。
六、一些問題及注意事項
1、如果數組中的值不是字元串,鍵名會以其本來的類型返回。
例如:
$array = array(1=>"one", 2=>"two", 3=>"three"); $keys = array_keys($array);
執行上述代碼後,$keys數組會存儲數字1,2和3。
2、如果數組中有多個值賦給同一個鍵名,array_keys()
函數只會返回最後一個鍵名。
例如:
$array = array(1=>"one", 2=>"two", 3=>"two"); $keys = array_keys($array);
執行上述代碼後,$keys數組會存儲數字1和3,而不是1,2和3。
3、在處理大量數據時,array_keys()
函數的執行會消耗大量內存。因此,儘可能使用其他函數來代替array_keys()
對數組進行批量處理。
七、總結
array_keys()
函數是一個十分有用的PHP函數。它不僅能夠方便地提取數組中的鍵名,還能用於對數組進行排序、過濾和其他操作。需要注意的是,當數組較大時,使用 array_keys()
函數可能會導致內存消耗較多,因此在數據量較大的情況下應該慎用。
原創文章,作者:BKIZ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/143128.html