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))
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章