获取多维数组中具有值的数组键

时间:2020-08-24 13:51:13

标签: php arrays

我的数组如下:

array(2) {
  [0]=>
  &array(2) {
    [0]=>
    string(3) "Key"
    [1]=>
    string(4) "0040"
  }
  [1]=>
  array(2) {
    [0]=>
    string(4) "key2"
    [1]=>
    string(9) "transport"
  }
}

我尝试获取“运输”,但我唯一的值是“ key2”。

我用in_array等进行了尝试,但是所有这些示例都只适用于$ key => $ value结构。

我需要使用这种数组格式,因为我调用的api需要这样。

谢谢

1 个答案:

答案 0 :(得分:0)

您可以循环查找值。

在这里找到鲍勃的第一个年龄。

<?php

$people =
[
    ['Bob', '76'],
    ['Allison','52']
];

$result = null;
foreach($people as list($name, $age)) {
    if($name == 'Bob') {
        $result = $age;
        break;
    }
}

var_dump($result);

输出:

string(2) "76"

您可以使用array_column来帮助构建地图,这里的名称由年龄决定。

$name_age = array_column($people, 1, 0);
var_export($name_age);
echo $name_age['Allison'];

输出:

array (
    'Bob' => '76',
    'Allison' => '52',
)52

或者只是:

echo array_column($people, 1, 0)['Bob'];

输出:

76

将使用循环来构造地图,类似于上面的$ name_age示例:

foreach($people as $person) {
    $name_age[$person[0]] = $person[1];
}

请注意,在使用array_column或循环构建地图时,如果Bob超过一个,则以后的事件将覆盖值。

相关问题