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


Posted in PHP onOctober 11, 2019

本文实例讲述了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 相关文章推荐
PHP遍历二维数组的代码
Apr 22 PHP
PHP实现根据设备类型自动跳转相应页面的方法
Jul 24 PHP
yii实现创建验证码实例解析
Jul 31 PHP
js+php实现静态页面实时调用用户登陆状态的方法
Jan 04 PHP
php技术实现加载字体并保存成图片
Jul 27 PHP
Yii2创建表单(ActiveForm)方法详解
Jul 23 PHP
php简单计算年龄的方法(周岁与虚岁)
Dec 06 PHP
ThinkPHP使用getlist方法实现数据搜索功能示例
May 08 PHP
php实现与python进行socket通信的方法示例
Aug 30 PHP
php中对象引用和复制实例分析
Aug 14 PHP
PHP实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】
May 29 PHP
Nginx+php配置文件及原理解析
Dec 09 PHP
laravel框架添加数据,显示数据,返回成功值的方法
Oct 11 #PHP
laravel 操作数据库常用函数的返回值方法
Oct 11 #PHP
解决laravel id非自增 模型取回为0 的问题
Oct 11 #PHP
Thinkphp5.0框架的Db操作实例分析【连接、增删改查、链式操作等】
Oct 11 #PHP
PHP实现单条sql执行多个数据的insert语句方法
Oct 11 #PHP
laravel 中某一字段自增、自减的例子
Oct 11 #PHP
laravel框架的安装与路由实例分析
Oct 11 #PHP
You might like
回首过去10年中最搞笑的10部动漫,哪一部让你节操尽碎?
2020/03/03 日漫
PHP session会话的安全性分析
2011/09/08 PHP
PHP实现采集抓取淘宝网单个商品信息
2015/01/08 PHP
Yii2增删改查之查询 where参数详细介绍
2016/08/08 PHP
PDO::errorInfo讲解
2019/01/28 PHP
laravel实现登录时监听事件,添加登录用户的记录方法
2019/09/30 PHP
深入理解javascript学习笔记(一) 编写高质量代码
2012/08/09 Javascript
js模拟hashtable的简单实例
2014/03/06 Javascript
js简单实现交换Li的值
2014/05/22 Javascript
JavaScript 获取任一float型小数点后两位的小数
2014/06/30 Javascript
JavaScript简单下拉菜单实例代码
2015/09/07 Javascript
JavaScript  cookie 跨域访问之广告推广
2016/04/20 Javascript
Bootstrap框架下下拉框select搜索功能
2020/03/26 Javascript
js 用于检测类数组对象的函数方法
2017/05/02 Javascript
基于jQuery实现手风琴菜单、层级菜单、置顶菜单、无缝滚动效果
2017/07/20 jQuery
vuejs实现递归树型菜单组件
2018/01/13 Javascript
vue利用axios来完成数据的交互
2018/03/23 Javascript
使用Vue实现图片上传的三种方式
2018/07/17 Javascript
[41:52]2018DOTA2亚洲邀请赛3月29日 小组赛A组 TNC VS OpTic
2018/03/30 DOTA
python创建和使用字典实例详解
2013/11/01 Python
关于你不想知道的所有Python3 unicode特性
2014/11/28 Python
python3之模块psutil系统性能信息使用
2018/05/30 Python
python保存二维数组到txt文件中的方法
2018/11/15 Python
python按比例随机切分数据的实现
2019/07/11 Python
python绘制汉诺塔
2021/03/01 Python
第二层交换机和路由器的区别?第三层交换机和路由器的区别?
2013/05/23 面试题
校园联欢晚会主持词
2014/03/17 职场文书
会计毕业生自荐书
2014/06/12 职场文书
2014年建筑工作总结
2014/11/26 职场文书
2014离婚协议书范文(3篇)
2014/11/29 职场文书
给领导的感谢信范文
2015/01/23 职场文书
秋季运动会加油词
2015/07/18 职场文书
老人院义工活动感想
2015/08/07 职场文书
Python3中PyQt5简单实现文件打开及保存
2021/06/10 Python
教你如何用Python实现人脸识别(含源代码)
2021/06/23 Python
手把手教你导入Go语言第三方库
2021/08/04 Golang