我有一张表格,
选择名称包含fixtureId,无论是在家还是离开,teamId fixture[id][home/away][teamid]
和所选值都是得分:
HTML
<form>
<select name="fixture[1][home][5]">
<option value="0">0</option>
<option value="1">1</option>
</select>
<select name="fixture[1][away][10]">
<option value="0">0</option>
<option value="1">1</option>
</select>
<button type="submit"></button>
</form>
我希望访问与所选值组合的选择名称值,以便在两个foreach循环中输出:
echo $fixtureId."-".$venue."-".$teamId."-".$score;
PHP
foreach($_POST['fixture'] as $fixtureId => $fixtureArray){
foreach($fixtureArray as $venue => $scoreArray){
echo $fixtureId."-".$venue;
$teamId = key($scoreArray[0]);
$score = $scoreArray[0];
}
}
$ scoreArray
Array
(
[10] => 0
)
问题
目前$fixtureId
和$venue
按预期工作,但即使他们在$scoreArray
,我也无法得到分数和团队ID!
团队ID应为10,分数应为0;
答案 0 :(得分:1)
我敢打赌你不够深入。在foreach()
循环之前尝试此操作:
echo '<pre>'.print_r($_POST['fixture'], true).'</pre>';
答案 1 :(得分:1)
让我们假设你已经选择了第一个选项,我们正在处理第一个选择......
foreach($_POST['fixture'] as $fixtureId => $fixtureArray){
// Now $textureId = 1; $fixtureArray = array("home"=> array(5=> 0));
foreach($fixtureArray as $venue => $scoreArray){
// Now $venue = "home"; $scoreArray = array(5 => 0); therefore ...
echo $fixtureId."-".$venue;
// There is NO index 0, so there is no key for it
$teamId = key($scoreArray[0]);
// Again, There is NO index 0
$score = $scoreArray[0];
}
}
每当您不确定阵列的索引时,请使用print_r
。
要解决此问题:为什么不简单地使用其他foreach
?
foreach($_POST['fixture'] as $fixtureId => $fixtureArray){
print_r($fixtureArray)
foreach($fixtureArray as $venue => $scoreArray){
print_r($scoreArray);
echo $fixtureId."-".$venue;
foreach($scoreArray as $teamId => $score)
{
echo($teamId."-".$score);
}
}
}
答案 2 :(得分:0)
试试这个我测试了这段代码
echo '<pre>';print_r($_POST);echo '</pre>';
foreach($_POST['fixture'] as $fixtureId => $fixtureArray) {
foreach($fixtureArray as $venue => $scoreArray) {
echo '<pre>';print_r($scoreArray);echo '</pre>';
//echo $fixtureId."-".$venue;
//echo $scoreArray;
foreach ($scoreArray as $scoreValue) {
echo "fixtureId ".$fixtureId."-"." venue ".$venue." score value ".$scoreValue."<br />";
}
/*$teamId = key($scoreArray[0]);
$score = $scoreArray[0];*/
}
}
这是你的代码我只是更新了一些东西。它奏效了。