让我们说我有一个看起来像这样的数组:
YourComponent.defaultProps = {
activities: []
}
和如下所示的循环:
$sql = array("name"=>"Peter", "active"=>1 , "age"=>30)
我希望循环遍历数组并将每个值分配给一个新变量。 在这段代码中,我试图使其值存储在:
value1
value2
value3
但是可惜这没有用,因此我在这里寻求帮助。 还是我得到了一个关联数组而不是数字数组的问题? 我不想只在此数组上使用此循环,而不要在具有不同键和长度的其他数组上使用此循环。
编辑:我想我可能还没有写得很清楚来告诉你我想要实现的目标: 我想在循环末尾有三个不存储在数组中的字符串值:
变量1应该包含“彼得”
变量2应包含“ 1”
变量3应该包含“ 30”
另外,我希望该循环是动态的,不仅接受该特定数组,而且如果我给它提供一个包含100个值的数组,我希望有100个不同的变量用于存储值。
很抱歉,我不太清楚,我还是stackoverflow的新手。
答案 0 :(得分:1)
根据您的条件,将每个值分配给一个新变量,我想您想要使用的是Variable variables。这是一个示例:
<?php
$sql = array("name"=>"Peter", "active"=>1 , "age"=>30);
$count = 1;
foreach ($sql as $value) {
$x = 'value'.$count;
$$x = $value; //here's the usage of Variable variables
$count++;
}
echo $value1.'<br/>';
echo $value2.'<br/>';
echo $value3.'<br/>';
我查看了您的示例变量($ value1,$ value2等)。我也将循环更改为foreach
,以轻松循环该数组。而且我还添加了一个$count
作为$value
变量的编号。
如果索引为数字,则$count
并不是必需的,但是由于它是一个关联数组,因此需要类似这样的东西来区分创建的变量
所要求的简要说明:
$x
包含要创建的变量的名称(在本例中为 value1 ),然后在添加另一个$
时到$x
(将变成$$x
),您正在将值分配给$x
的当前值(等于$value1='Peter'
)
答案 1 :(得分:0)
要动态定义变量,请使用$$
。 Demo
$sql = array("name"=>"Peter", "active"=>1 , "age"=>30);
$index = 1;
foreach($sql as $value){
${"value" . $index++} = $value;
}