2009-07-27 15 views
1

私はPHP/CodeIgniterのを使用していて、通常はクエリの結果をループに私はこのような何かをするだろう:複数のオブジェクトにPHP foreachループ?

<?php foreach($data as $row):?> 
//html goes here 
<?php endforeach;?> 

しかし、私は$dataなどのオブジェクトの同じ番号を持つ別のオブジェクトの配列、$data2を、持っていると言います。 foreachステートメントを使用して同じループ内の両方のオブジェクトのrowsに同時にアクセスできる有効なPHP構文がありますか?私は配列のindecesにアクセスすることによって通常のforループでこれを行うことができることを知っていますが、これはきれいではありません。

答えて

4

あなたはこのような何かへの可能性:効果的に同時にループに両方の配列をあなたが可能になるであろう

<?php foreach($data as $key => $row): $row2 = $data2[$key]; ?> 
//html goes here 
<?php endforeach;?> 

を。

+1

感謝!まさに私が必要なもの – oym

1

私はインデックスがあなたの最善の策だと思います。一般的に、2つの配列のサイズが同じであることと、もう一方の配列のサイズが同じではないことが分かっているため、これは奇妙な言語機能になります。

$ dataと$ other配列の代わりに、エントリが - > dataと - >他のメンバとの連想配列であるというようなコードをリファクタリングすることもできます。しかし、これは、データモデルで意味がある場合にのみ行う必要があります。 IMHO、この場合インデックスをループしても問題ありません。