PHP数组,替换foreach循环中的键

时间:2016-08-16 15:09:02

标签: php arrays

我已阅读了很多帖子,但未能找到解决问题的方法。

我有一个名为“Water”的$_POST数组,$_POST['Water'],其内容为:

 [Water] => Array ( [0] => 55.0 [1] => 22 )

是否可以在foreach循环中使用帖子的名称,以便$key可以使用名称“Water”:

foreach($_POST['Water']  as $key => $val) {
    $fields[] = "$field = '$val'";
    //echo "Key: $key, Value: $val<br/>\n";
}

非常感谢你的时间。

2 个答案:

答案 0 :(得分:2)

不是真的。 foreach()对数组的内容进行操作。无论实际包含该数组的是什么都超出了foreach的观点。如果您想在其他地方动态使用Water密钥,则必须自己执行此操作:

$key = 'Water'
foreach($_POST[$key] as $val) {
   $fields[] = "$key = '$val'";
}

答案 1 :(得分:0)

如果我读得对,你基本上希望$field='water'内有foreach。这可以通过重新思考我们构建foreach的方式来完成。

您只需要将字段值设为变量,然后在需要值的任何地方传递使用。

$field = 'Water';
foreach($_POST[$field]  as $key => $val) {
    $fields[] = "$field = '$val'";
    //echo "Key: $key, Value: $val<br/>\n";
}

这种方法的优点是,如果你改变主意并稍后调用$ _POST键,那么“液体”需要编辑一行,这就是全部。此外,如果您的foreach是函数的一部分,$ field可以是函数参数。以迂回的方式,您实际上已经非常接近一些代码重用原则。