PHP array_keys():獲得陣列中的鍵名

2020-07-16 10:05:30
在 PHP 中,陣列的每個元素都是由鍵值對組成,通過元素的鍵來存取對應鍵的值。那麼我們要如何通過陣列元素的值來獲取該元素所對應的鍵名呢?

提示:“索引”和“鍵名”指的是同一樣東西,“索引”多指陣列數位形式的下標。

使用 PHP 中的 array_key() 函數可以獲取陣列中的部分或所有鍵名,該函數語法格式如下:

array_keys($array [, $search_value = null [, $strict = false]])

引數說明如下:
  • $array:必選引數,為待操作的陣列;
  • $search_value:可選引數,如果引數為空,則函數會返回陣列中的所有鍵名,如果指定了該引數,則函數就只會返回值為 $search_value 的鍵名;
  • $strict:可選引數,判斷在搜尋的時候是否使用嚴格模式,$strict 預設為 false,也就是非嚴格模式,在搜尋時只比較型別,不比較型別,若將 $strict 設定為 true,也就是嚴格模式,在搜尋時同時比較值和型別,等價於===

array_key() 函數會以陣列形式返回得到的陣列鍵名。

【範例】使用 array_key() 函數獲取陣列的鍵名。
<?php
    $array = array(
        'name'  => 'C語言中文網',
        'url'   => 'http://c.biancheng.net/php/',
        'title' => 'PHP教學',
        'info'  =>  array(
            'id'      => 1234,
            'article' => 'array_keys() 函數'
        )
    );

    echo '<pre>';
    print_r(array_keys($array));
    print_r(array_keys($array,'PHP教學'));        //非嚴格模式
    print_r(array_keys($array,'php教學',true));   //嚴格模式
?>
執行結果如下:

Array
(
    [0] => name
    [1] => url
    [2] => title
    [3] => info
)
Array
(
    [0] => title
)
Array
(
)

通過執行結果可以看出,array_keys() 函數僅適用於一維陣列,對於多維陣列中第一維度以外的其它維度的鍵名則無法獲取。