0

不好意思问,但我不知道如何在这个 foreach 循环中回显所有数组的键:

$i=0;
foreach ($matches as $match) {
echo $match[$i++];
}

现在结果只是“1”。而不是 1 2 3 7

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
            [3] => 7
        )

)
4

4 回答 4

1

你只想要数组键?利用

array_keys()

您想在循环时回显键吗?利用

foreach($array AS $key=>$value){
     echo $key.' ';
}

您想回显这些值吗?利用:

foreach($array AS $key=>$value){
    echo $value.' '; 
}

否则,您需要解释您实际尝试做的事情。

于 2013-06-11T14:44:43.177 回答
0

那是因为您的代码本质上是在回显第一个数组的第一项,第二个数组的第二项,等等,但是由于您在“主”一个数组中只有一个数组,因此它会输出该单个1. 虽然这对于证明有无穷多个实数很有用,但这不是您的目标!

尝试这个:

foreach($matches as $match) {
    echo implode(" ",$match);
}
于 2013-06-11T14:44:32.647 回答
0

如果 $matches 始终是具有单个元素的数组,您可以采取捷径并使用:

foreach ($matches[0] as $match) {
  echo $match.' ';
}

否则使用嵌套的 foreach 循环

foreach($matches as $match) {
  foreach($match as $element) {
    echo $element.' ';
  }
}
于 2013-06-11T14:46:13.213 回答
0

您可以使用array_walk_recursive来完成此操作。

$array = array(
  array(
    0 => 1,
    1 => 2,
    2 => 3,
    3 => 7
  )
);

function print_out($item, $key) {
  echo "$key = $item\n";
}

array_walk_recursive($array, 'print_out');

输出:

0 = 1
1 = 2
2 = 3
3 = 7
于 2013-06-11T14:55:51.240 回答