1. 程式人生 > 實用技巧 >PHP實現通過二維陣列鍵值獲取一維鍵名操作示例

PHP實現通過二維陣列鍵值獲取一維鍵名操作示例

本文例項講述了PHP實現通過二維陣列鍵值獲取一維鍵名操作。分享給大家供大家參考,具體如下:

有如下既定陣列:

$inviteType = [
      '掃碼' => [
        'type' => 0,
        'point' => 5,
      ],
      '評論' => [
        'type' => 1,
        'point' => 5,
      ],
      '分享' => [
        'type' => 2,
        'point' => 10,
      ],
      '邀請' => [
        'type' => 3,
        'point' => 50,
      ],
      '關注' => [
        'type' => 4,
        'point' => 50,
      ],
      '簽到' => [
        'type' => 5,
        'point' => 5,
      ],
      '完善資料' => [
        'type' => 6,
        'point' => 50,
      ],
    ];

需求:

通過type裡面的鍵值,比如0這個值,獲取到“掃碼”這個中文文字,是個很頭痛的問題,最後通過查詢資料,發現了一個很好用的方法,可以實現解決這個需求:

$arr = array_map('array_shift',$inviteType);
echo "<pre>";
print_r($arr);
echo "</pre>";

array_map('array_shift',array),該方法的意思是將array的每一項的第一個鍵值移除,並返回該值,注意此時的鍵名仍然是array的鍵名,輸出結果如下:

Array
(
[掃碼] => 0

[評論] => 1
[分享] => 2
[邀請] => 3
[關注] => 4
[簽到] => 5
[完善資料] => 6
)

注意!返回的值是每一項的第一個鍵值,如果將point放在二維陣列第一個,則返回的結果就是point的值了(適用範圍狹窄),因此實際使用中需要把指定欄位調整到第一個!

得到了想要的資料了,自然能獲取到相對的鍵名了:

$type = 0;
$key = array_search($type,$arr);
echo $key;

輸出結果如下:

掃碼

所以通過二維陣列的每一項第一個鍵值獲取一維鍵名可以總結為下面這行程式碼:

array_search('type',array_map('array_shift',$array))

更多關於PHP相關內容感興趣的讀者可檢視本站專題:《PHP陣列(Array)操作技巧大全》、《php排序演算法總結》、《PHP資料結構與演算法教程》、《php程式設計演算法總結》、《php字串(string)用法總結》及《PHP常用遍歷演算法與技巧總結

希望本文所述對大家PHP程式設計有所幫助。