1

私は次の配列を持っています:

array(6) {
  [0]=>
  string(4) "XXX1"
  [1]=>
  int(16)
  [2]=>
  string(4) "YYY1"
  [3]=>
  string(4) "XXX2"
  [4]=>
  int(632)
  [5]=>
  string(4) "YYY2"
}

次のような出力が必要です。

最初のXXX-最初のint()-最初のYYY \ n

2番目のXXX-2番目のint()-2番目のYYY \ n

while、for、またはforeachを使用してこれを実現するにはどうすればよいですか?

ありがとう。

4

2 に答える 2

1

探している出力の種類は正確にはわかりませんが、これにより段落タグに入れられます。

$cnt = 0;
$out = '<p>';
foreach ($arr as $key => $value){
    $out .= $value.' - ';
    $cnt++;
    if ($cnt == 3){
        $cnt = 0;
        $out = substr($out, 0, -3).'</p><p>';
    }
}
$out = substr($out, 0, -3);
于 2012-12-07T18:45:50.737 に答える
1

Pe de Leaoのように、私はあなたが望む出力を100%理解しているとは限りませんが、ここに2つの候補があります。

3の完全な「セット」をチェックしません。

<?php
$flat = array(
    "XXX1",
    16,
    "YYY1",
    "XXX2",
    632,
    "YYY2"
);

for ($i = 0; $i < count($flat); $i += 3)
    echo "{$flat[$i]} - {$flat[$i + 1]} - {$flat[$i + 2]}\n";
?>

3の完全な「セット」をチェックしますか。

<?php
$flat = array(
    "XXX1",
    16,
    "YYY1",
    "XXX2",
    632,
    "YYY2",
    "XXX3",
    932
);

for ($i = 0; $i < count($flat) && ($i + 3) < count($flat); $i += 3)
    echo "{$flat[$i]} - {$flat[$i + 1]} - {$flat[$i + 2]}\n";
?>

例は絶対確実ではありません。たとえば、配列に穴のない数値インデックスが付けられているなどの仮定がありますが、これが目的に十分近いことを願っています。

于 2012-12-07T19:20:34.377 に答える