Php 当键也是数组时,如何列出数组的键?

Php 当键也是数组时,如何列出数组的键?,php,Php,我有一个复杂的数组,结构如下 array(3) { ["status"]=> int(1) ["data"]=> array(113) { [0]=> array(3) { ["id"]=> string(6) "838424" ["language"]=> NULL ["work_start_date"]=> string(19) "2003-04-28

我有一个复杂的数组,结构如下

array(3) {
  ["status"]=>
  int(1)
  ["data"]=>
  array(113) {
    [0]=>
    array(3) {
      ["id"]=>
      string(6) "838424"
      ["language"]=>
      NULL
      ["work_start_date"]=>
      string(19) "2003-04-28 00:00:00"
    }
    [1]=>
    array(3) {
      ["id"]=>
      string(6) "839062"
      ["language"]=>
      NULL
      ["work_start_date"]=>
      string(19) "2014-01-15 12:53:00"
    }
  }
}
print $my_array["data"]["0"]["id"] . "\n";
我可以通过使用下面的东西来获得某个元素的“id”

array(3) {
  ["status"]=>
  int(1)
  ["data"]=>
  array(113) {
    [0]=>
    array(3) {
      ["id"]=>
      string(6) "838424"
      ["language"]=>
      NULL
      ["work_start_date"]=>
      string(19) "2003-04-28 00:00:00"
    }
    [1]=>
    array(3) {
      ["id"]=>
      string(6) "839062"
      ["language"]=>
      NULL
      ["work_start_date"]=>
      string(19) "2014-01-15 12:53:00"
    }
  }
}
print $my_array["data"]["0"]["id"] . "\n";
但是我想做的是循环0,1等元素,我不知道怎么做。我原以为下面这样做就行了,但没用

foreach ($my_array["data"] as $key) {
   print $my_array["data"][$key]["id"] . "\n";
}
任何洞察都将不胜感激

尝试以下方法:

foreach (array_keys($my_array["data"]) as $key) { print ... } foreach(数组_键($my_数组[“数据”])作为$key){ 打印。。。 } 尝试以下方法:

foreach (array_keys($my_array["data"]) as $key) { print ... } foreach(数组_键($my_数组[“数据”])作为$key){ 打印。。。 } 尝试以下方法:

foreach (array_keys($my_array["data"]) as $key) { print ... } foreach(数组_键($my_数组[“数据”])作为$key){ 打印。。。 } 尝试以下方法:

foreach (array_keys($my_array["data"]) as $key) { print ... } foreach(数组_键($my_数组[“数据”])作为$key){ 打印。。。 }
您的foreach语法有点不正确

您应该:

foreach($my_array['data'] as $item) {
    print $item['id'] . "\n";
}

在第一种情况下,使用带有单个变量名的foreach语法,实际上您没有关于键本身的信息,只获得每个索引位置的值。这种语法通常只对数字索引数组(在本例中为数字索引数组)有用

在第二种语法中,您可以为键和可以引用的值获取一个变量。这通常对于迭代关联数组或迭代需要引用索引位置的数值数组最有用


在任何一种情况下,
$item
中的值都只包含该数组元素的值,您不需要引用包含
$my_数组的变量来访问此数据。

您的foreach语法有点不正确

您应该:

foreach($my_array['data'] as $item) {
    print $item['id'] . "\n";
}

在第一种情况下,使用带有单个变量名的foreach语法,实际上您没有关于键本身的信息,只获得每个索引位置的值。这种语法通常只对数字索引数组(在本例中为数字索引数组)有用

在第二种语法中,您可以为键和可以引用的值获取一个变量。这通常对于迭代关联数组或迭代需要引用索引位置的数值数组最有用


在任何一种情况下,
$item
中的值都只包含该数组元素的值,您不需要引用包含
$my_数组的变量来访问此数据。

您的foreach语法有点不正确

您应该:

foreach($my_array['data'] as $item) {
    print $item['id'] . "\n";
}

在第一种情况下,使用带有单个变量名的foreach语法,实际上您没有关于键本身的信息,只获得每个索引位置的值。这种语法通常只对数字索引数组(在本例中为数字索引数组)有用

在第二种语法中,您可以为键和可以引用的值获取一个变量。这通常对于迭代关联数组或迭代需要引用索引位置的数值数组最有用


在任何一种情况下,
$item
中的值都只包含该数组元素的值,您不需要引用包含
$my_数组的变量来访问此数据。

您的foreach语法有点不正确

您应该:

foreach($my_array['data'] as $item) {
    print $item['id'] . "\n";
}

在第一种情况下,使用带有单个变量名的foreach语法,实际上您没有关于键本身的信息,只获得每个索引位置的值。这种语法通常只对数字索引数组(在本例中为数字索引数组)有用

在第二种语法中,您可以为键和可以引用的值获取一个变量。这通常对于迭代关联数组或迭代需要引用索引位置的数值数组最有用


在任何一种情况下,
$item
中的值都只包含该数组元素的值,您不需要引用包含
$my_array
变量来访问此数据。

这可能不会增加OP对其原始错误的理解值。。。这是对
foreach()
语法的一个简单误解。这可能不会给OP对其原始错误的理解增加太多价值。。。这是对
foreach()
语法的一个简单误解。这可能不会给OP对其原始错误的理解增加太多价值。。。这是对
foreach()
语法的一个简单误解。这可能不会给OP对其原始错误的理解增加太多价值。。。这是对
foreach()
语法的简单误解。我向你保证,你的数组键不是数组。我向你保证,你的数组键不是数组。我向你保证,你的数组键不是数组。我向你保证,你的数组键不是数组。