0

アレイから情報を出力しようとしていますが、foreachサイクルでmanuforeachを使用したくありません。この配列からデータを出力する方法はとても興味深い

Array
(
[aM] => Array
    (
        [0] => Array
            (
                [iId] => 0
                [iTime] => 00
            )

        [1] => Array
            (
                [iId] => 1
                [iTime] => 11
            )

        [2] => Array
            (
                [iId] => 2
                [iTime] => 22
            )
    )

[aN] => Array
    (
        [0] => Array
            (
                [sName] => a
            )

        [1] => Array
            (
                [sName] => b
            )

        [2] => Array
            (
                [sName] => v
            )
    )
)

このように、最初の配列のデータが2番目の配列のデータに近い

0 a, 1 b, 2v

?こことは異なり、最初にすべてのデータを2番目からではなく最初から出力します

0 1 2 a b v

4

2 に答える 2

4

MultipleIteratorこれは、両方の配列を簡単に反復処理する で簡単に実行できます。

// $array = your array from up there

$iter = new MultipleIterator;
$iter->attachIterator( new ArrayIterator( $array['aM']));
$iter->attachIterator( new ArrayIterator( $array['aN']));

foreach( $iter as $data) {
    list( $a, $b) = $data;
    echo $a['iId'] . ' ' . $b['sName'] . ',';
}

このデモから、出力されることがわかります(PHP >= 5.3 の場合):

0 a,1 b,2 v,
于 2012-11-16T14:18:29.267 に答える
1

私が正しければ、「aM」を反復処理してから、「aN」でそれぞれの項目を見つけます。

$sets = array();
foreach ($arr['aM'] as $key => $item) {
    $sets[] = $item['iId'] . ' ' . $arr['aN'][$key]['sName'];
}
echo join(', ', $sets);
于 2012-11-16T14:19:54.230 に答える