2016-06-09 49 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