我的数组如下:
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需要这样。
谢谢
答案 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超过一个,则以后的事件将覆盖值。