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世纪万年历
Dec 06 PHP
PHP经典的给图片加水印程序
Dec 06 PHP
php 保留小数点
Apr 21 PHP
解析php利用正则表达式解决采集内容排版的问题
Jun 20 PHP
preg_match_all使用心得分享
Jan 31 PHP
php中curl、fsocket、file_get_content三个函数的使用比较
May 09 PHP
CI框架入门示例之数据库取数据完整实现方法
Nov 05 PHP
php将远程图片保存到本地服务器的实现代码
Aug 03 PHP
thinkphp如何获取客户端IP
Nov 03 PHP
PHP读书笔记_运算符详解
Jul 01 PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
Jan 23 PHP
基于PHP+Mysql简单实现了图书购物车系统的实例详解
Aug 06 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
15种PHP Encoder的比较
2007/03/06 PHP
学习php笔记 字符串处理
2010/10/19 PHP
php中比较简单的导入phpmyadmin生成的sql文件的方法
2011/06/28 PHP
php实现SAE上使用storage上传与下载文件的方法
2015/06/29 PHP
PHP实现获取文件后缀名的几种常用方法
2015/08/08 PHP
PHP的Laravel框架中使用AdminLTE模板来编写网站后台界面
2016/03/21 PHP
通过Javascript将数据导出到外部Excel文档的函数代码
2012/06/15 Javascript
jQuery随便控制任意div隐藏的方法
2013/06/28 Javascript
arguments对象验证函数的参数是否合法
2015/06/26 Javascript
详解Angular2中的编程对象Observable
2016/09/17 Javascript
微信小程序之ES6与事项助手的功能实现
2016/11/30 Javascript
angularjs中的$eval方法详解
2017/04/24 Javascript
EasyUI创建人员树的实例代码
2017/09/15 Javascript
Vue下路由History模式打包后页面空白的解决方法
2018/06/29 Javascript
深入理解es6块级作用域的使用
2019/03/28 Javascript
详解auto-vue-file:一个自动创建vue组件的包
2019/04/26 Javascript
微信小程序云开发 生成带参小程序码流程
2019/05/18 Javascript
开发中常用的25个JavaScript单行代码(小结)
2019/06/28 Javascript
jQuery实现轮播图效果demo
2020/01/11 jQuery
vue实现几秒后跳转新页面代码
2020/09/09 Javascript
解决js中的setInterval清空定时器不管用问题
2020/11/17 Javascript
[43:58]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第二局
2016/02/27 DOTA
Python写的一个简单DNS服务器实例
2014/06/04 Python
python映射列表实例分析
2015/01/26 Python
简析Python的闭包和装饰器
2016/02/26 Python
Python实现二维有序数组查找的方法
2016/04/27 Python
Python实现复杂对象转JSON的方法示例
2017/06/22 Python
用不到50行的Python代码构建最小的区块链
2017/11/16 Python
python selenium自动上传有赞单号的操作方法
2018/07/05 Python
python爬虫 模拟登录人人网过程解析
2019/07/31 Python
Python模块/包/库安装的六种方法及区别
2020/02/24 Python
css3实现圆锥渐变conic-gradient效果
2020/02/12 HTML / CSS
基于ccs3的timeline时间线实现方法
2020/04/30 HTML / CSS
绘画设计学生的个人自我评价
2013/09/20 职场文书
中学生爱国演讲稿
2014/09/05 职场文书
农村党建工作汇报材料
2014/10/27 职场文书