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面向对象全攻略 (十五) 多态的应用
Sep 30 PHP
zend framework配置操作数据库实例分析
Dec 06 PHP
php中require和require_once的区别说明
Feb 27 PHP
ThinkPHP标签制作教程
Jul 10 PHP
支持png透明图片的php生成缩略图类分享
Feb 08 PHP
深入浅析php中sprintf与printf函数的用法及区别
Jan 08 PHP
thinkphp分页集成实例
Jul 24 PHP
php实现和c#一致的DES加密解密实例
Jul 24 PHP
thinkphp5.1 文件引入路径问题及注意事项
Jun 13 PHP
laravel实现简单用户权限的示例代码
May 28 PHP
laravel 框架结合关联查询 when()用法分析
Nov 22 PHP
PHP实现Markdown文章上传到七牛图床的实例内容
Feb 11 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
MySQL授权问题总结
2007/05/06 PHP
php实现的简单日志写入函数
2015/03/31 PHP
php如何连接sql server
2015/10/16 PHP
Laravel框架路由设置与使用示例
2018/06/12 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
CL vs ForZe BO5 第四场 2.13
2021/03/10 DOTA
jquery dialog open后,服务器端控件失效的快速解决方法
2013/12/19 Javascript
Express作者TJ告别Node.js奔向Go
2014/07/14 Javascript
jQuery $命名冲突解决方案汇总
2014/11/13 Javascript
jQuery的观察者模式详解
2014/12/22 Javascript
jQuery基础语法实例入门
2014/12/23 Javascript
Validform+layer实现漂亮的表单验证特效
2016/01/17 Javascript
老生常谈ES6中的类
2017/07/31 Javascript
微信小程序使用video组件播放视频功能示例【附源码下载】
2017/12/08 Javascript
vue + webpack如何绕过QQ音乐接口对host的验证详解
2018/07/01 Javascript
微信小程序首页的分类功能和搜索功能的实现思路及代码详解
2018/09/11 Javascript
JS动态图片的实现方法完整示例
2020/01/13 Javascript
JS正则表达式验证密码强度
2020/03/18 Javascript
Python中的模块和包概念介绍
2015/04/13 Python
Python 实现使用dict 创建二维数据、DataFrame
2018/04/13 Python
浅谈Scrapy网络爬虫框架的工作原理和数据采集
2019/02/07 Python
python GUI库图形界面开发之PyQt5下拉列表框控件QComboBox详细使用方法与实例
2020/02/27 Python
Python3 filecmp模块测试比较文件原理解析
2020/03/23 Python
python如何输出反斜杠
2020/06/18 Python
详解CSS3中@media的实际使用
2015/08/04 HTML / CSS
Erwin Müller穆勒家居瑞士官网:您整个家庭的邮购公司
2019/12/28 全球购物
高中毕业生自我鉴定例文
2013/12/29 职场文书
艾滋病宣传标语
2014/06/25 职场文书
家长评语怎么写
2014/12/30 职场文书
结婚通知短信怎么写
2015/04/17 职场文书
幼儿园端午节活动总结
2015/05/05 职场文书
小学体育组工作总结2015
2015/07/21 职场文书
2016年教师节感恩寄语
2015/12/04 职场文书
学校教代会开幕词
2016/03/04 职场文书
python中pandas.read_csv()函数的深入讲解
2021/03/29 Python
详解Laravel服务容器的优势
2021/05/29 PHP