2016-06-09 70 views
0

for循環我有以下幾點:PHP存儲使用的變量外的for循環

<?php foreach($this->relatedItems as $key=>$item): ?> 
<div class="column1"><?php echo $item->extraFields->field1->value; ?></div> 
<div class="column2"><?php echo $item->extraFields->field2->value; ?></div> 
<div class="column3"><?php echo $item->extraFields->field3->value; ?></div> 
<?php endforeach; ?> 

我還想爲每個自定義字段變量的傳遞每一個相關項目,使用的循環之外。

理想我想有變量:

relatedItems1_field1, relatedItems1_field2, relatedItems1_field3, relatedItems1_field4, relatedItems2_field1, relatedItems2_field2, relatedItems2_field3, relatedItems2_field4, relatedItems3_field1, relatedItems3_field2, relatedItems3_field3, relatedItems3_field4

任何援助將不勝感激,非常感謝提前!

+0

難道你不在'$ this-> relatedItems'列表中有這些值嗎?像這樣:'$ this-> relatedItems [0] - > extraFields-> field1-> value' ...等等? –

+0

在每個新行中打印的輸出在循環內部? 這些值每次會以4結尾? –

+0

嗨馬格努斯,是的,但他們結束時,循環再次。 嗨梅根,是的這個輸出是在循環內,但我也需要使用循環外的變量。相關項目和字段值將高達10. – jimmywiddle

回答

1

備選1

只要$this->relatedItems是不關聯數組(具有不在鍵序列或字符串作爲關鍵字),那麼你可以使用它

$this->relatedItems[0]->extraFields->field1->value 

備選2

如果$this->relatedItems數組鍵是不可預測的/締合,可以使用以下代碼::

<?php 
$keys = []; 
foreach($this->relatedItems as $key => $item): 
    $keys[] = $key; 
?> 

    <div class="column1"><?php echo $item->extraFields->field1->value; ?></div> 
    <div class="column2"><?php echo $item->extraFields->field2->value; ?></div> 
    <div class="column3"><?php echo $item->extraFields->field3->value; ?></div> 

<?php 
endforeach; 
?> 

這將創建與陣列外循環所有按鍵(0-9,如果您在$this->relatedItems中有10個陣列項目)。

然後你可以在循環外使用:

$this->relatedItems[$keys[0]]->extraFields->field1->value 

沒有必要所有的值複製到新的變量,因爲你已經在你的範圍有他們。

0

您可以使用多維數組來存儲值

查看示例代碼。

<!DOCTYPE html> 
<html> 
    <body> 

    <?php 
     $cars = array 
    (
     array("Volvo",22,18), 
     array("BMW",15,13), 
     array("Saab",5,2), 
     array("Land Rover",17,15) 
) ; 

echo $cars[0][0].": In stock: ".$cars[0][1].", sold: ".$cars[0][2].".<br>"; 
echo $cars[1][0].": In stock: ".$cars[1][1].", sold: ".$cars[1][2].".<br>"; 
echo $cars[2][0].": In stock: ".$cars[2][1].", sold: ".$cars[2][2].".<br>"; 
echo $cars[3][0].": In stock: ".$cars[3][1].", sold: ".$cars[3][2].".<br>"; 
?> 

</body> 
</html> 

喜歡這張

$items = array(); 
foreach($group_membership as $username) { 
$items[] = $username; 

}

print_r($items); 
+0

非常感謝,雖然我想知道我如何將這個應用到我給的例子?任何進一步的幫助將非常感謝!再次感謝! – jimmywiddle