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 相关文章推荐
echo(),print(),print_r()之间的区别?
Nov 19 PHP
php中解析带中文字符的url函数分享
Jan 20 PHP
smarty模板引擎从php中获取数据的方法
Jan 22 PHP
ThinkPHP V2.2说明文档没有说明的那些事实例小结
Jul 01 PHP
解决nginx不支持thinkphp中pathinfo的问题
Jul 21 PHP
PHP+Mysql+jQuery中国地图区域数据统计实例讲解
Oct 10 PHP
PHP微信模板消息操作示例
Jun 29 PHP
PHP获取当前系统时间的方法小结
Oct 03 PHP
django中的ajax组件教程详解
Oct 18 PHP
使用laravel和ECharts实现折线图效果的例子
Oct 09 PHP
PHP中关于php.ini参数优化详解
Feb 28 PHP
Git命令之分支详解
Mar 02 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
php实现计数器方法小结
2015/01/05 PHP
浅谈PHP中try{}catch{}的使用方法
2016/12/09 PHP
微信公众号OAuth2.0网页授权问题浅析
2017/01/21 PHP
[JS源码]超长文章自动分页(客户端版)
2007/01/09 Javascript
分析 JavaScript 中令人困惑的变量赋值
2007/08/13 Javascript
js导入导出excel(实例代码)
2013/11/25 Javascript
10条建议帮助你创建更好的jQuery插件
2015/05/18 Javascript
深入浅析JavaScript系列(13):This? Yes,this!
2016/01/05 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐二)
2016/07/12 Javascript
JavaScript实现的仿新浪微博原生态输入字数即时检查功能【兼容IE6】
2017/09/26 Javascript
简单明了区分escape、encodeURI和encodeURIComponent
2018/05/26 Javascript
Node.js npm命令运行node.js脚本的方法
2018/10/10 Javascript
layui的表单提交以及验证和修改弹框的实例
2019/09/09 Javascript
vue自动添加浏览器兼容前后缀操作
2020/08/13 Javascript
ES6 十大特性简介
2020/12/09 Javascript
[04:36]DOTA2国际邀请赛 ti3精彩集锦
2013/08/19 DOTA
[05:11]TI9战队采访——VIRTUSPRO
2019/08/22 DOTA
Python中异常重试的解决方案详解
2017/05/05 Python
python中退出多层循环的方法
2018/11/27 Python
如何在Django项目中引入静态文件
2019/07/26 Python
python函数定义和调用过程详解
2020/02/09 Python
python GUI库图形界面开发之PyQt5简单绘图板实例与代码分析
2020/03/08 Python
Python趣味实例,实现一个简单的抽奖刮刮卡
2020/07/18 Python
经验丰富程序员才知道的8种高级Python技巧
2020/07/27 Python
Python 程序员必须掌握的日志记录
2020/08/17 Python
Python制作简单的剪刀石头布游戏
2020/12/10 Python
GWT的应用有哪两种部署模式
2012/12/21 面试题
旅游管理毕业生自荐信
2013/11/05 职场文书
继电保护工岗位职责
2014/01/05 职场文书
环保建议书
2014/03/12 职场文书
关于践行三严三实的心得体会
2016/01/05 职场文书
关于感恩的歌曲整理(8首)
2019/08/14 职场文书
python中pycryto实现数据加密
2022/04/29 Python
MySQL批量更新不同表中的数据
2022/05/11 MySQL
Python通用验证码识别OCR库ddddocr的安装使用教程
2022/07/07 Python
Java使用HttpClient实现文件下载
2022/08/14 Java/Android