使用foreach循环创建新变量

时间:2018-01-08 21:27:03

标签: php json loops variables foreach

我得到了这个

$data   = json_decode($json, true)["value1"];

之后我将对名称值的响应排序:

foreach($data as $test) {
echo $test['name'];
}

这显示了我需要的所有名字,这完美无缺。

Output: name1 name2 name3

问题: 我有什么办法,在新的单个变量中获取foreach输出,所以我可以通过脚本的其余部分使用它们?

Expl.: $name_1 = name1;

也许我完全错了。

非常感谢一位写下他的第一个项目的新手。

3 个答案:

答案 0 :(得分:3)

这应该是你要找的东西:

$i = 1;
foreach($data as $test) {
    ${'name_'.$i++} = $test['name'];
}

虽然为此使用数组几乎总是更好的选择。

答案 1 :(得分:0)

如果您对json数组感到不舒服,可以将值推送到新数组:

$names = array();
foreach($data as $value)
{array_push($names,$value['name']);}

但是动态创建变量并像数组一样使用它们通常不是一个好方法。从字面上看,那是什么数组用于。

答案 2 :(得分:0)

非常感谢你们,我想我的灵感已经解决了。

在考虑到你的答案之后,我尝试了另一步,现在我得到了一个阵列中我需要的所有数据,我可以访问每个单个数据。

$data = json_decode($json, true)["value1"];

$value_names = array();

foreach($data as $value)
{
    $value_names[]=$value{'name'};
}

所以现在数组中的所有数据:

array(8) { [0]=> string(6) "name" [1]=> string(6) "name" [2]=> string(10) "name" [3]=> string(12) "name" [4]=> string(12) "name" [5]=> string(9) "name" [6]=> string(13) "name" [7]=> string(4) "name" }

如果我解决这个问题我会得到更多的问题:)但是在我问之前我会自学,所以我练习我的技能。非常感谢社区!!!