遍历数组:每个值的新变量

时间:2019-10-17 07:31:06

标签: php arrays variables

让我们说我有一个看起来像这样的数组:

YourComponent.defaultProps = { activities: [] }

和如下所示的循环:

$sql = array("name"=>"Peter", "active"=>1 , "age"=>30)

我希望循环遍历数组并将每个值分配给一个新变量。 在这段代码中,我试图使其值存储在:

value1

value2

value3

但是可惜这没有用,因此我在这里寻求帮助。 还是我得到了一个关联数组而不是数字数组的问题? 我不想只在此数组上使用此循环,而不要在具有不同键和长度的其他数组上使用此循环。

编辑:我想我可能还没有写得很清楚来告诉你我想要实现的目标: 我想在循环末尾有三个不存储在数组中的字符串值:

变量1应该包含“彼得”

变量2应包含“ 1”

变量3应该包含“ 30”

另外,我希望该循环是动态的,不仅接受该特定数组,而且如果我给它提供一个包含100个值的数组,我希望有100个不同的变量用于存储值。

很抱歉,我不太清楚,我还是stackoverflow的新手。

2 个答案:

答案 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;
}