当前位置 主页 > 网站技术 > 代码类 >

    PHP实现通过二维数组键值获取一维键名操作示例

    栏目:代码类 时间:2019-10-28 06:04

    本文实例讲述了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程序设计有所帮助。