【问题标题】:Sizeof array in php not working in the for loopphp中的sizeof数组在for循环中不起作用
【发布时间】:2014-03-19 19:33:33
【问题描述】:

我正在尝试通过 for 循环中的数组创建一些变量。我遇到的问题是 for 循环和定义第二个参数(sizeof 数组或计数)。如果在这个地方我放了数字 4,整个脚本就可以工作,但是如果我放 $length - 它什么也没给我。

HTML

<form action="proceed.php" method="post"> 
<textarea name="que[1]"></textarea>
<textarea name="que[2]"></textarea>
<textarea name="que[3]"></textarea><br/> 
<input type="submit" name="submit" value="GO"><br/> 
</form> 

PROCEED.PHP

<?php
$bla = "";
$question = array();
$length = count($question);

for($j=1; $j<$length; $j++) {
    $question = $_POST['que'];

if($question[$j] != "") {
    $bla .= $j.'This is good<br/><br/>';
}}
echo $bla;
?>

【问题讨论】:

  • 如果$_POST['que'] 已经是一个数组,你现在不需要foreach。复制它。 (或者更确切地说不要;多余的。)
  • $length 为零,因为在将 count($question) 放入 $length 时,$question 是一个空数组

标签: php html arrays for-loop


【解决方案1】:

您正在创建一个空数组,然后计算它的大小。为什么你会期望除了零计数?

您真正想要的是que 数组的大小:

$length = count($_POST['que']);

但这会让你的一些代码变得不必要,因为这已经是一个数组了。

for($j=1; $j<$length; $j++) {
  // $question = $_POST['que']; UNNECESSARY 
  if($_POST['que'][$j] != "") {
    $bla .= $j.'This is good<br/><br/>';
  }
}

【讨论】:

    【解决方案2】:
    <?php
    $bla = "";
    $question = $_POST['que'];
    $length = count($question);
    
    for($j=1; $j<$length; $j++) {    
        if($question[$j] != "") {
            $bla .= $j.'This is good<br/><br/>';
        }
    }
    echo $bla;
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多