Php 循环使用具有类似名称的$\u POST变量
我有几个$u POST变量,它们是Php 循环使用具有类似名称的$\u POST变量,php,string,Php,String,我有几个$u POST变量,它们是 $_POST['item_number1'] $_POST['item_number2'] 等等 我需要写一个循环来显示所有变量的值(我不知道有多少)。最简单的方法是什么?如果我知道我有多少变量,最简单的方法是什么 试试看: foreach($_POST as $k => $v) { if(strpos($k, 'item_number') === 0) { echo "$k = $v"; } } 在上面的示例
$_POST['item_number1']
$_POST['item_number2']
等等
我需要写一个循环来显示所有变量的值(我不知道有多少)。最简单的方法是什么?如果我知道我有多少变量,最简单的方法是什么 试试看:
foreach($_POST as $k => $v)
{
if(strpos($k, 'item_number') === 0)
{
echo "$k = $v";
}
}
在上面的示例中,$k将是数组键,$v将是值 如果你知道你有多少人:
for ($i=0; $i < $num_of_vars; $i++)
echo $_POST['item_number'.$i]."<br />";
for($i=0;$i<$num\u of_vars;$i++)
echo$_POST['item_number.$i]。“
”;
更新:
如果没有:
foreach($\u发布为$k=>v){
$pos=STRPO($k,“项目编号”);
如果($pos==0)
echo$v.“
”;
}
获取所有类似于“item_number”的POST变量
UPD 2:由于piotrekkr的评论,将“==”更改为“==”。谢谢这将回显名称以
项目编号开头的所有POST参数
:
foreach($_POST as $k => $v) {
if(strpos($k, 'item_number') === 0) {
echo "$k = $v";
}
}
PHP手册:,如果您知道变量的数量:
<?php
$n = 25; // the max number of variables
$name = 'item_number'; // the name of variables
for ($i = 1; $i <= $n; $i++) {
if (isset($_POST[$name . $i])) {
echo $_POST[$name . $i];
}
}
如果您必须坚持使用诸如item\u numberX之类的变量名
foreach (array_intersect_key($_POST, preg_grep('#^item_number\d+$#D', array_keys($_POST))) as $k => $v) {
echo "$k $v \n";
}
或
如果可以控制输入名称,最好使用php
<input name="item_number[]">
<input name="item_number[]">
<input name="item_number[]">
尝试:
还有其他的$\u POST变量,我只需要那些以“item\u number”开头的变量,我想@Natalia想要的是item\u number
在key的开头,所以应该有strpos($k,'item\u number')==0
你是从表单中得到这些值的吗?可以使用表单数组样式提交,方法是将表单元素设置为:name='item'\u number[]'样式,这样您就可以在$\u POST变量中循环使用该数组。您应该使用if($pos==0)
因为strpos()
当指针位于字符串开头时返回0
,当指针未找到时返回false
。
<?php
$name = 'item_number';
foreach ($_POST as $key) {
if (strpos($key, $name) > 0) {
echo $_POST[$key];
}
}
foreach (array_intersect_key($_POST, preg_grep('#^item_number\d+$#D', array_keys($_POST))) as $k => $v) {
echo "$k $v \n";
}
foreach (new RegexIterator(new ArrayIterator($_POST), '#^a\d+$#D', null, RegexIterator::USE_KEY) as $k => $v) {
echo "$k $v \n";
}
<input name="item_number[]">
<input name="item_number[]">
<input name="item_number[]">
print_r($_POST['item_number']);
while (list($key,$value) = each($_POST))
${$key} = trim($value);