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

$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

これは、コードが本質的に最初の配列の最初の項目、2 番目の 2 番目の項目などをエコーし​​ているからですが、「メイン」配列には配列が 1 つしかないため、その単一の1. これは無限に多くの実数があることを証明するのに役立ちますが、それはあなたが目指しているものではありません!

これを試して:

foreach($matches as $match) {
    echo implode(" ",$match);
}
于 2013-06-11T14:44:32.647 に答える
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 に答える