foreach over array并使用php获取值

时间:2012-06-20 00:17:02

标签: php arrays

使用jquery的.post我发送我的PHP代码一个对象var_dump我得到这个结果:

array(6) {
  [0]=>
  array(1) {
    ["00176 "]=>
    string(1) "2"
  }
  [1]=>
  array(1) {
    ["00171 "]=>
    string(1) "5"
  }
  [2]=>
  array(1) {
    ["00173 "]=>
    string(1) "1"
  }
  [3]=>
  array(1) {
    ["00177 "]=>
    string(1) "4"
  }
  [4]=>
  array(1) {
    ["00183 "]=>
    string(1) "2"
  }
  [5]=>
  array(1) {
    ["00149 "]=>
    string(1) "1"
  }
}

我如何从这个数组中获取值?我想

foreach{
echo $key . '__ ' . $value //would give for [0]: '00176 __ 2'
}

我怎样才能实现这一目标?

3 个答案:

答案 0 :(得分:2)

如果您正在努力使用数组的嵌套结构,您可以先将其展平,然后再执行foreach

// flatten the array:
$array = call_user_func_array('array_merge', $array);

// standard foreach:
foreach ($array as $key => $value) {
   echo $key . '__ ' . $value;
}

另一种方法是使用each

foreach ($array as $entry) {
    list($key, $value) = each($entry);
    echo $key . '__ ' . $value;
}

答案 1 :(得分:0)

由于子数组的键值更改,您可能需要外部和内部循环。我希望重新整理你的帖子数据更清洁。

foreach($array as $item)
{
  if(is_array($item))
    foreach($item as $key => $value)
    {
      echo $key . '__ ' . $value;
    }
}

答案 2 :(得分:0)

您正在通过POST接收多维数组,它具有以下结构:

$_POST[0][00176] = '2'
$_POST[1][00171] = '5'
$_POST[2][00173] = '1'
$_POST[3][00177] = '4'
$_POST[4][00183] = '2'
$_POST[5][00149] = '1'

所以我认为更容易阅读它的方法就是在另一个foreach中做一个foreach,就像这样:

foreach ($_POST as $key1 => $value1)
{
    foreach ($value1 as $key2 => $value2)
    {
        echo $key2 . '__' . $value2;
    }

}

在PHP文档中,有一个使用foreach

读取多维数组的示例