我正在对数组进行一些研究,我正在尝试解决如何将foreach
循环的值存储到数组中,然后我可以print_r()
。
除了$array = foreach()...
之外,我的脚本运行正常。正如您所看到的,我调用了return;
将结果返回给$array
变量,但是我得到了一个解析错误。
到目前为止,这是我的代码:
<?php
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="radio" name="DataNameOne" value="Value 1">
<input type="radio" name="DataNameTwo" value="Value 2">
<input type="radio" name="DataNameThree" value="Value 3">
<input type="submit" />
</form>
<?php
$array = foreach ($_POST as $key=>$value) {
if (stristr($key, "section")) {
$section = $value;
$section_name = $key;
return;
}
echo "Key is: $key and Valus is: $value";
}
echo "<pre>";
print_r($array);
echo "</pre>";
?>
答案 0 :(得分:6)
你可以做到
$array = $_POST;
因为$ _POST已经是一个数组。但是,如果您想使用foreach循环迭代源数组并仅复制它的某些部分,您可以执行以下操作:
$new_array = array()
foreach($original_array as $key => $value) {
if (...filter condition(s)...) {
$new_array[$key] = $value;
}
}
还有array_map()
,preg_grep()
等...您可以根据需要修改/过滤数组。
答案 1 :(得分:0)
我真的很抱歉这篇文章太令人困惑了。我的代码是从源代码复制的,我一直在更改html和php中的名称和值来学习这个..
我把整个事情弄得一团糟,并通过以下方式解决了这个问题:
foreach ($_POST as $key=>$value) {
if (stristr($key, "section")) {
$section = $value;
$section_name = $key;
return;
}
echo "Key is: $key and Valus is: $value";
}
echo "<pre>";
print_r($_POST);
echo "</pre>";
答案 2 :(得分:0)
$_POST is array.if we use print_r($_POST); of above form, we find array:-
code:-
-------------
$data=array();
$new_array=array();
echo"<pre>";
print_r($_POST);
$data[]=$_POST['DataNameOne'];
$data[]=$_POST['DataNameTwo'];
$data[]=$_POST['DataNameThree'];
print_r($data);
foreach($ as $key => $value) {
if (...filter condition(s)...) {
$new_array[$key]=$value;
} }
output:-
-------------
Array
(
[DataNameOne] => Value 1
[DataNameTwo] => Value 2
[DataNameThree] => Value 3
)
Array
(
[0] => Value 1
[1] => Value 2
[2] => Value 3
)