如何从数组输出值?

时间:2018-08-15 09:32:55

标签: php arrays

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]'];

但是我没有输出。

5 个答案:

答案 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

请参见https://3v4l.org/L1gLR

答案 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'];
}