-2
所以我有一個表:高效循環
| header_row | cell_usr_a | cell_usr_b | cell_fixed_a | cell_fixed_b |
| second_row |...
| usr_row_a |...
| usr_row_b |...
| usr_row_c |...
在本例中的前兩列(cell_usr *)來自動態對象(X條目的陣列);可能有0個或多個;最後兩列總是在那裏。 前兩行始終存在(元素名稱和其他常規屬性)。 usr_row *取決於動態對象中的元素:如果數組中的某個元素具有相應的屬性集,則顯示該行,否則我不顯示該行。
我怎樣纔能有效地遍歷對象,而不必重新迭代每一行?
目前我做
foreach ($array as $element)
的每一行,根據$數組的大小增加。 然後,我需要再次遍歷所有的$元素,看看是否設置了usr_row屬性,如果是,則構造該行...
有關如何有效地完成此操作的任何想法(也可能優雅) ?謝謝! 它不一定是一個表btw。
編輯:一些更多的代碼來幫助說明我的問題 $包是對象,它基本上與未知數量的元素
<table>
<tr><!-- header row -->
<td>Package name</td>
<?php foreach($packages as $pkg) {
echo '<td>'.$pkg->package_name . '</td>';
} ?>
<td>fixed value</td><!-- cell_fixed_a -->
<td>no value</td><!-- cell_fixed_b -->
</tr>
<tr><!-- second row -->
<td>Count</td>
<?php foreach($packages as $pkg) {
echo '<td>'.$pkg->count . '</td>';
} ?>
<td>fixed value</td><!-- cell_fixed_a -->
<td>fixed value</td><!-- cell_fixed_b -->
</tr>
<tr><!-- usr_row_a
HERE I ONLY NEED TO HAVE THIS ROW IF any one of $pkg has prop set
-->
<?php foreach($packages as $pkg) {
if ($pkg->prop) {
echo '<tr><td>Property name</td>';
echo '<td>'. $pkg->prop . '</td>';
}
</tr>
</table>
這是相當困難想象你在問什麼 - 你能展示一些代碼嗎?另外想到這可能更適合http://codereview.stackexchange.com/ – DaveRandom
var_dump($ your_object)'的輸出是什麼? – Jocelyn
您可以使用print_r添加更多關於數組結構和所需輸出的信息,以便我可以獲得更好的圖片 – Baba