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))
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是一个示例: ``` $students = array( array( "name" => "John", "age" => 20, "gender" => "male" ), array( "name" => "Jane", "age" => 21, "gender" => "female" ), array( "name" => "Bob", "age" => 19, "gender" => "male" ) ); ``` 这个二维数组包含三个子数组,每个子数组都包含一个名称、一个年龄和一个性别。可以使用索引或关联数组语法来访问这些值,例如: ``` echo $students[0]["name"]; // 输出 "John" echo $students[1]["age"]; // 输出 21 echo $students[2]["gender"]; // 输出 "male" ``` ### 回答2: 可以使用array()函数定义一个关联二维数组。关联二维数组是由多个关联数组组成的数组。每个关联数组都是由一个键和一个值组成。以下是一个使用array()函数定义关联二维数组的示例: ```php $array = array( array("姓名" => "张三", "年龄" => 20), array("姓名" => "李四", "年龄" => 25), array("姓名" => "王五", "年龄" => 30) ); ``` 在上面的示例中,$array是一个包含3个关联数组的关联二维数组。每个关联数组都含有两个键值对,分别是"姓名"和"年龄"。可以通过指定索引来访问关联二维数组的元素。例如,要访问第一个关联数组的姓名,可以使用以下代码: ```php echo $array[0]["姓名"]; // 输出:"张三" ``` 同样地,也可以通过循环遍历关联二维数组获取所有元素。以下是一个使用foreach循环遍历关联二维数组的示例: ```php foreach ($array as $item) { echo "姓名:" . $item["姓名"] . ",年龄:" . $item["年龄"] . "<br>"; } ``` 上述代码将依次输出每个关联数组的姓名和年龄。 总结起来,使用array()函数可以很方便地定义关联二维数组,在处理多个关联数组时非常有用。 ### 回答3: 关联二维数组是指一个包含多个数组数组,其中每个数组都有一个关联键和对应的值。 在PHP中,可以使用array()函数来定义一个关联二维数组。具体步骤如下: 1. 使用array()函数创建一个空的关联二维数组。 ```php $arr = array(); ``` 2. 使用索引键和对应的值来添加数组元素。 ```php $arr['key1'] = array('name' => 'John', 'age' => 25); $arr['key2'] = array('name' => 'Jane', 'age' => 30); ``` 这样,数组$arr就包含了两个数组元素,每个元素都有一个关联键和对应的值。例如,`$arr['key1']`对应一个包含'name'和'age'键的数组。 3. 可以使用foreach循环来遍历关联二维数组。 ```php foreach ($arr as $key => $value) { echo "Key: " . $key . "<br>"; echo "Name: " . $value['name'] . "<br>"; echo "Age: " . $value['age'] . "<br><br>"; } ``` 以上代码将输出每个数组元素的关联键以及"name"和"age"对应的值。 通过以上步骤,就可以使用array()函数定义一个关联二维数组,并对其进行操作和遍历。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值