PHP 如何 foreach 分解 POST 多个值
PHP How to foreach explode POST multiple values
我想从 POST 多个值中分解
用第一个 space 切断“1234”(按字符而不是位置)
我收到错误“数组到字符串的转换”
Form
<input type="checkbox" name="docid[]" value="1234 harry potter">
Submit
$docID = $_POST['docid'];
foreach($docID as $val) {
echo explode(' ', $val);
}
Output
1234
编辑
我想将输出插入到 DB
explode returns 一个 数组 的字符串,所以 echo
不起作用。它还有第三个参数,用来限制返回的元素:
<?php
$docID = $_POST['docid'];
foreach($docID as $val) {
$exploded = explode(' ', $val, 2);
// print_r($exploded); # Array ( [0] => 1234 [1] => harry potter )
echo $exploded[0];
}
会输出1234
编辑:如果您想从结果中删除 1234
,请使用 echo $exploded[1];
- 这将输出 harry potter
简单:
<form action="index.php" method="post">
<input type="checkbox" name="docid[]" value="1234 harry potter">
<input type="checkbox" name="docid[]" value="45678 test 123">
<button type="submit">Submit</button>
</form>
<?php
$docID = $_POST['docid'] ?? [];
foreach ($docID as $val) {
$values = explode(' ', $val);
foreach ($values as $v) {
echo $v . PHP_EOL;
}
}
输出(如果选中所有复选框):
1234 harry potter 45678 test 123
我不太确定你想做什么,但根据你的代码,如果你只想记录你从爆炸中得到的东西,只需将你的爆炸封装在 print_r()
例如:
foreach($docID as $val) {
print_r(explode(' ', $val));
}
我找到了另一个解决方案,它也有效。
$docID = $_POST['docid']
foreach($docID as $val) {
echo explode(' ', $val)[0];
echo '<br>';
}
我想从 POST 多个值中分解
用第一个 space 切断“1234”(按字符而不是位置)
我收到错误“数组到字符串的转换”
Form
<input type="checkbox" name="docid[]" value="1234 harry potter">
Submit
$docID = $_POST['docid'];
foreach($docID as $val) {
echo explode(' ', $val);
}
Output
1234
编辑 我想将输出插入到 DB
explode returns 一个 数组 的字符串,所以 echo
不起作用。它还有第三个参数,用来限制返回的元素:
<?php
$docID = $_POST['docid'];
foreach($docID as $val) {
$exploded = explode(' ', $val, 2);
// print_r($exploded); # Array ( [0] => 1234 [1] => harry potter )
echo $exploded[0];
}
会输出1234
编辑:如果您想从结果中删除 1234
,请使用 echo $exploded[1];
- 这将输出 harry potter
简单:
<form action="index.php" method="post">
<input type="checkbox" name="docid[]" value="1234 harry potter">
<input type="checkbox" name="docid[]" value="45678 test 123">
<button type="submit">Submit</button>
</form>
<?php
$docID = $_POST['docid'] ?? [];
foreach ($docID as $val) {
$values = explode(' ', $val);
foreach ($values as $v) {
echo $v . PHP_EOL;
}
}
输出(如果选中所有复选框):
1234 harry potter 45678 test 123
我不太确定你想做什么,但根据你的代码,如果你只想记录你从爆炸中得到的东西,只需将你的爆炸封装在 print_r()
例如:
foreach($docID as $val) {
print_r(explode(' ', $val));
}
我找到了另一个解决方案,它也有效。
$docID = $_POST['docid']
foreach($docID as $val) {
echo explode(' ', $val)[0];
echo '<br>';
}