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

yipeiwu_com7年前PHP代码库

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

相关文章

php开启与关闭错误提示适用于没有修改php.ini的权限

windows系统开关php错误提示 如果不具备修改php.ini的权限,可以将如下代码加入php文件中: 代码如下 ini_set("display_errors", "On"); e...

调试PHP程序的多种方法介绍

调试的定义:通过一定方法,在程序中找到并减少缺陷的数量,从而使其能正常工作。 这里说一些如何调试PHP程序的经验。 一、PHP自带的调试功能 1、自带的报错功能 两个名词:开发环境是开发...

php数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系

ksort()定义和用法 ksort() 函数按照键名对数组升序排序,为数组值保留原来的键。 可选的第二个参数包含附加的排序标志。 若成功,则返回 TRUE,否则返回 FALSE。 语法...

解析php类的注册与自动加载

解析php类的注册与自动加载

工程目录如下:1、将需要注册的类放在一个数组中复制代码 代码如下:<?phpfinal class Utils {    private functi...

使用PHP实现二分查找算法代码分享

第一种方法: 【二分查找要求】:1.必须采用顺序存储结构 2.必须按关键字大小有序排列。    【优缺点】折半查找法的优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表...