如果里面的foreach里面为里面的

时间:2014-05-03 18:15:38

标签: php

我有问题;

当我这样做时:

<?php
$ncarts = $_POST["ncarts"];
$npedras = $_POST["npedras"];
$quantidade_sorteada = $_GET["quantidade_sorteada"];
echo $quantidade_sorteada;
?>

我使用echo有正确的输出。 但是,当我这样做时:

<?php
$ncarts = $_POST["ncarts"];
$npedras = $_POST["npedras"];
$quantidade_sorteada = $_GET["quantidade_sorteada"];

echo $quantidade_sorteada;

for ($p=1; $p<=$ncarts; $p++) {
    $numeros_cartela$p = file ("cartela{$p}.txt"); 
}

for ($k=1; $k<=$quantidade_sorteada; $k++) {
    $sorted$k = $_GET["numero$k"]; 
}

for ($p=1; $p<=$ncarts; $p++) {
    $contador_pontos_cartela$p = 0;
    for ($g=1; $g<=$quantidade_sorteada; $g++) {
        foreach ($numeros_cartela$p as $w) {
            if ($w == $sorted$g) {
                $contador_pontos_cartela$p += 1;
            }
        }
    }
}

for ($oi=1; $oi<=$ncarts; $oi++) {
    echo $contador_pontos_cartela$oi;
}
?>

第一个回声停止工作。它告诉我,我在代码的第二部分有一个prgramming错误。但我无法找到。

有人帮帮我吗? 谢谢


新代码:

<?php
$ncarts = $_POST["ncarts"];
$npedras = $_POST["npedras"];
$quantidade_sorteada = $_GET["quantidade_sorteada"];

echo $quantidade_sorteada;

for ($p=1; $p<=$ncarts; $p++) {
$numeros_cartela[$p] = file ("cartela{$p}.txt"); 
}

for ($k=1; $k<=$quantidade_sorteada; $k++) {
$sorted[$k] = $_GET["numero$k"]; 
}

for ($p=1; $p<=$ncarts; $p++) {
$contador_pontos_cartela{$p} = 0;
 for ($g=1; $g<=$quantidade_sorteada; $g++) {
foreach ($numeros_cartela[$p] as $w) {

if ($w == $sorted[$g]){
$contador_pontos_cartela{$p} += 1;
}

}
}
}

for ($oi=1; $oi<=$ncarts; $oi++)  {
echo $contador_pontos_cartela{$oi};

}

?>

3 个答案:

答案 0 :(得分:3)

您无法生成如下变量:

$numeros_cartela$p

如果您需要一个以数字结尾的变量,则必须执行以下操作:

$numeros_cartela{$p}

但是使用数组会更好:

// initialize the array
$numeros_cartela = array();
...
// use the array in your loop
$numeros_cartela[$p] = ...

对于你这样做的所有其他实例都是一样的。

答案 1 :(得分:0)

您的问题与

类似
$numeros_cartela$p = ...;

PHP不允许这样的语法。使用数组:

$numeros_cartela[$p] = ...;

答案 2 :(得分:0)

无法创建变量,如$ numeros_cartela $ p和$ sorted $ k。

您可以使用数组存储值,然后迭代它们以获取值。