我有几个$ _ POST变量,它们是
$_POST['item_number1']
$_POST['item_number2']
等
我需要写一个循环塔将显示所有变量的值(我不知道有多少)。什么是最简单的方法呢?如果我知道我有多少变数,那么最简单的方法是什么?
我有几个$ _ POST变量,它们是
$_POST['item_number1']
$_POST['item_number2']
等
我需要写一个循环塔将显示所有变量的值(我不知道有多少)。什么是最简单的方法呢?如果我知道我有多少变数,那么最简单的方法是什么?
尝试:
foreach($_POST as $k => $v)
{
if(strpos($k, 'item_number') === 0)
{
echo "$k = $v";
}
}
在上述例子中,$ķ将数组键和$ V将是的值。
还有其他$ _POST变量,我只需要那些以“item_number”开头的那个 – Natalia 2011-12-19 21:39:56
@Natalia我已经更新了我的回答 – SeanNieuwoudt 2011-12-19 21:43:10
我认为@Natalia想要的是'item_number'在key的开头,所以那里应该是'strpos($ k,'item_number')=== 0' – piotrekkr 2011-12-19 21:55:11
如果你知道有多少你有:
for ($i=0; $i < $num_of_vars; $i++)
echo $_POST['item_number'.$i]."<br />";
UPDATE: 如果没有:
foreach($_POST as $k => $v) {
$pos = strpos($k, "item_number");
if($pos === 0)
echo $v."<br />";
}
获取所有的POST变量是像 “ITEM_NUMBER”
UPD 2:由于piotrekkr的评论,已将“==”更改为“===”。由于
你应该使用'if($ pos === 0)',因为当针在字符串开头时strpos()返回'0'如果没有找到针,则显示“false”。 – piotrekkr 2011-12-19 21:52:34
foreach($_POST as $k => $v) {
if(preg_match("#item_number([0-9]+)#si", $k, $keyMatch)) {
$number = $keyMatch[1];
// ...
}
}
,如果你知道的变量的数目:
<?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];
}
}
如果您不知道号码:
<?php
$name = 'item_number';
foreach ($_POST as $key) {
if (strpos($key, $name) > 0) {
echo $_POST[$key];
}
}
如果必须与这些变量名棍子像item_numberX
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";
}
更好的使用PHP的input variable array feature,如果你能控制输入名字。
<input name="item_number[]">
<input name="item_number[]">
<input name="item_number[]">
然后php将它处理成一个数组给你。
print_r($_POST['item_number']);
尝试:
while (list($key,$value) = each($_POST))
${$key} = trim($value);
你是从一种形式获得这些价值?可以通过将form元素设置为:name ='item_number []'style来使用表单数组样式,以便您可以循环访问$ _POST变量中的那个数组。 – Blake 2011-12-19 21:42:54