Php 数组输出被复制
我从PHP中的Php 数组输出被复制,php,Php,我从PHP中的POST操作中获得了以下Array: Array ( [level-1] => 3 [quarter-1] => 1 [year-1] => 2014 [level-2] => 4 [quarter-2] => 2 [year-2] => 2014 [level-53] => 2 [quarter-53] => 1 [year-53] =>
POST
操作中获得了以下Array
:
Array (
[level-1] => 3
[quarter-1] => 1
[year-1] => 2014
[level-2] => 4
[quarter-2] => 2
[year-2] => 2014
[level-53] => 2
[quarter-53] => 1
[year-53] => 2013
[level-58] => 3
[quarter-58] => 2
[year-58] => 2014
[action] => store
[submit_values] => Store
)
我执行以下操作以从数组中获取值:
$array=$_POST;
foreach(array_chunk($array,3,true) as $val){
foreach($val as $k=>$v){
if(strpos($k, "level") !== false){
$temp = explode("-",$k);
$id = $temp[1];
$level = $v;
}
if(strpos($k, "quarter") !== false){
$quarter = $v;
}
if(strpos($k, "year") !== false){
$year = $v;
}
}
echo "ID ".$id." Level ".$level." Quarter ".$quarter." Year ".$year;
echo "<br>";
}
最后一行重复!我的代码有什么地方做错了吗?试试这个:
$array = $_POST;
unset($array['submit_values']);
unset($array['action']); //...
您没有使用
操作
和提交值
检查上次循环,因此它返回上次保存的值:
$array=$_POST;
foreach(array_chunk($array,3,true) as $val){
foreach($val as $k=>$v){
if(strpos($k, "level") !== false){
$temp = explode("-",$k);
$id = $temp[1];
$level = $v;
}
elseif(strpos($k, "quarter") !== false){
$quarter = $v;
}
elseif(strpos($k, "year") !== false){
$year = $v;
}
// if not one of ifs works
else continue;
}
echo "ID ".$id." Level ".$level." Quarter ".$quarter." Year ".$year;
echo "<br>";
}
当循环通过[action]=>store和[submit\u values]=>store时,控件不会进入任何if语句,因此在最后两个循环中,它会打印以前设置的值 即2014年第2季度第3级ID 58 解决方案:
在foreach循环结束时,尝试将ID、级别、季度和年度重新初始化为”(空白值)。如果这是您想要得到的输出,代码是正确的。但是你没有告诉我们你想要什么,所以我们不能告诉你。我不想重复最后一行!
$array=$_POST;
foreach(array_chunk($array,3,true) as $val){
foreach($val as $k=>$v){
if(strpos($k, "level") !== false){
$temp = explode("-",$k);
$id = $temp[1];
$level = $v;
}
elseif(strpos($k, "quarter") !== false){
$quarter = $v;
}
elseif(strpos($k, "year") !== false){
$year = $v;
}
// if not one of ifs works
else continue;
}
echo "ID ".$id." Level ".$level." Quarter ".$quarter." Year ".$year;
echo "<br>";
}
foreach(array_chunk($array,3,true) as $val){
$id = '';
$level = '';
$quarter = '';
$year = '';