数组中的PHP _GET值

问题描述 投票:1回答:3

我有项目列表,在选择它们并按下提交按钮后,在网址栏中有一种查询:

adrese-id=7&food-id=1&food-id=2&food-id=3&food-id=4

试图获取阵列中的所有食物ID,但到目前为止没有运气,尝试做:

$ids = $_GET['food-id'];

但那只是最后一个值,即4 ...

如何在数组中获取这些值?

php get
3个回答
4
投票

您必须为您的字段命名,以表明它是一个“数组”。所以,而不是food-id,在最后添加括号使其成为food-id[]

例如:

<input type="checkbox" name="food-id[]" value="1"> Pizza
<input type="checkbox" name="food-id[]" value="2"> Cheese
<input type="checkbox" name="food-id[]" value="3"> Pepperonis

在PHP中访问它将是相同的,$_GET['food-id'](但这次它将是一个数组)。


0
投票

在php中,$_GET数组有$key => $value对。在这种情况下,'food-id'是$key。因为你的所有值(1,2,3,4)具有相同的键:'food-id',所以数组如下所示:

$_GET = [
'food-id' => 1,
'food-id' => 2,
'food-id' => 3,
'food-id' => 4,
]

这将始终使用正在使用的最后一个$key => $value对进行解析:

$_GET = [
'food-id' => 4
]

解决方案始终使用阵列中的唯一键。


-1
投票

您确实需要提供生成值的HTML片段。但是,如果你查看你的GET请求,food-id的值不会被提交为一个数组,这可能是你想要的。您的GET请求应该更像:

adrese-id=7&food-id[]=1&food-id[]=2&food-id[]=3&food-id[]=4

这应该可以为您提供有关如何命名HTML表单值的线索。

© www.soinside.com 2019 - 2024. All rights reserved.