array(7) {
[0]=>
array(2) {
["name"]=>
string(14) "form[username]"
["value"]=>
string(1) "1"
}
[1]=>
array(2) {
["name"]=>
string(15) "form[is_active]"
["value"]=>
string(1) "1"
}
[2]=>
array(2) {
["name"]=>
string(8) "form[id]"
["value"]=>
string(1) "9"
}
}
我想从数组中获取ID。我希望达到的输出是9
。
我的方法:
echo $array['form[id]'];
但是我没有输出。
答案 0 :(得分:4)
使用$array['form[id]'];
时,您正在寻找名为“ form [id]”的键,该键将不起作用,因为数组的键为0、1和2。您可以使用{ {1}}。但是,这将始终调用数组的第二个元素,而这可能不是您想要的。更具动态性的解决方案是这样的:
$array[2]['value']
这将遍历整个数组并检查每个元素的名称。然后,当它与您所需的名称匹配时,将打印该确切元素的值。
答案 1 :(得分:3)
最简单的方法可能是先使用array_column
重新索引数组。然后,您可以使用name
字段作为键:
$array = array_column($array, null, 'name');
echo $arr['form[id]']['value'];
// 9
答案 2 :(得分:2)
您可以使用foreach并检查内容..但索引“名称”的内容只是字符串form[id]
无论如何
foreach( $myArray AS $key => $value){
if ($value['name'] == 'form[id]' ) {
echo $key;
echo $value;
}
}
答案 3 :(得分:1)
您试图获取的值好像是一个associative array(有时称为字典或地图),但是它是一个纯数组或索引数组。
通过调用$array[2]["value"]
您还可以使用一些更高级别的功能,例如array_search;那么您可以使用:
$id = array_search(function($values) {
return $values['name'] == 'form[id]';
}, $array)["value"];
答案 4 :(得分:0)
所以我认为您需要过滤数组以首先找到所需的元素,然后输出该元素的值:
$filtered_array = array_filter($your_array, function(element){
return element['name'] == 'form[username]';
});
if (!empty($filtered_array)) {
echo array_pop($filtered_array)['value'];
}