在foreach-PHP中添加上一个值
假设我有这样的数据字符串在foreach-PHP中添加上一个值,php,Php,假设我有这样的数据字符串 one=1&two=2&three=3&four=4&two=2 我正在使用phpforeach获取键/值,并对此时需要的键/值进行排序 foreach($_POST as $key => $value) { if ($key == "two") { // $result = Take $value and add it to the previous $value .","; } } 我试图达到的目标是如何
one=1&two=2&three=3&four=4&two=2
我正在使用phpforeach
获取键/值,并对此时需要的键/值进行排序
foreach($_POST as $key => $value) {
if ($key == "two") {
// $result = Take $value and add it to the previous $value .",";
}
}
我试图达到的目标是如何获取重复的键并添加循环中生成的先前值。例如:解决方案是将它们存储为foreach循环外部的数组
$keys = [];
foreach($_POST as $key => $value) {
if ($key == "two") {
$keys[] = $value;
}
}
return $keys
将它们存储为foreach循环外部的数组
$keys = [];
foreach($_POST as $key => $value) {
if ($key == "two") {
$keys[] = $value;
}
}
return $keys
如果您正在
将问题中的字符串发布到服务器,则只能看到two
的一个值,而不能同时看到这两个值。第二个将覆盖第一个值
如果希望一个键有多个值,可以使用[]
将其设置为数组
one=1&two[]=2&three=3&four=4&two[]=2
现在,$\u POST['two']
将是一个数组(one
,three
和three
将是字符串)。如果将问题中的字符串发布到服务器,则只能看到two
的一个值,而不是两个值。第二个将覆盖第一个值
如果希望一个键有多个值,可以使用[]
将其设置为数组
one=1&two[]=2&three=3&four=4&two[]=2
现在,$\u POST['two']
将是一个数组(1
,3
和4
将是字符串)。这将不起作用。您只能从POST、get和REQUEST中获取最后一个值。您需要解析$_服务器['QUERY_STRING'],如果解析它,您可以迭代数组:
foreach(explode('&',$_SERVER['QUERY_STRING']) as $k => $v)
{
$val = explode('=',$v);
$result[$val[0]] = isset($result[$val[0]]) ? $result[$val[0]].','.$val[1]:$val[1];
}
这是行不通的。您只能从POST、get和REQUEST中获取最后一个值。您需要解析$_服务器['QUERY_STRING'],如果解析它,您可以迭代数组:
foreach(explode('&',$_SERVER['QUERY_STRING']) as $k => $v)
{
$val = explode('=',$v);
$result[$val[0]] = isset($result[$val[0]]) ? $result[$val[0]].','.$val[1]:$val[1];
}
也有人提到过,但如果这是来自服务器的帖子,那么你就不会得到重复的密钥
也有人提到过,但如果这是来自服务器的帖子,那么你就不会得到重复的密钥 记住多个已发布的值,您可以在到达的任何数组上使用内爆()
:
foreach($_POST as $key=>$value)
{
if(is_array($value))
$_POST[$key]=implode(',',$value);
}
要获取您似乎要查找的字符串值。请记住多个已发布的值,您可以在到达的任何数组上使用内爆()
:
foreach($_POST as $key=>$value)
{
if(is_array($value))
$_POST[$key]=implode(',',$value);
}
要获取您似乎想要的字符串值。如果将其发布到服务器,您将只看到一个两个,而不会同时看到两个值。要访问任何数组的名称结构,请使用print\r和。如果POST
将其发送到服务器,则只会看到一个两个
,不会同时看到两个值。要访问任何数组的名称结构,请使用print\r和。数组中不能有两个相同的键。此代码可以简化为$keys=$\u POST['two']
(这将是一个字符串,而不是一个数组)。仅供参考,在php中,为了访问数组,您不需要在foreach之外初始化数组。只需将内容添加到数组中,并在完成后返回。数组中不能有两个相同的键。此代码可以简化为$keys=$\u POST['two']
(这将是一个字符串,而不是一个数组)。仅供参考,在php中,为了访问数组,您不需要在foreach之外初始化数组。只需将内容添加到数组中,并在完成后返回。您不需要在=
上进行分解吗?是的,我在问题中没有问号,所以我将其从答案中删除,但如果您有一个问号,您应该将其取出,以便此操作正常。不,我的意思是您需要执行列表($key,$value)=分解('=',$value)
。(我想说你需要分解等号。问号是因为我在问一个问题:-P)你不也需要分解=
?是的,我在问题中没有问号,所以我把它从答案中漏掉了,但是如果你有一个问号,你应该把它拿出来让它工作不,我的意思是你需要做列表($key,$value)=分解('=',$value)
。(我想说你需要分解等号。问号是因为我在问一个问题:-P)