关于数组的输出

关于数组的输出

<?php
        $subjects = array(
              "Mechanical Engineering",  "Medicine",
              "Social Science",          "Agriculture",
              "Commercial Science",     "Politics"
        );
       
        //匹配所有仅由有一个单词组成的科目名
        $alonewords = preg_grep("/^[a-z]*$/i", $subjects);

        for ($i = 0; $i < sizeof($alonewords); $i++) {
                if($i%2 != 0)
                print $alonewords[$i]."<br/>";//这里为什么只有一个输出项?
        }
?>

正则后得到三个数据,但这三个数据并不是像你所想的是:
$alonewords=(0=>Medicine 1=>Agriculture 2=>Politics)
而是:
$alonewords=(1=>Medicine 3=>Agriculture 5=>Politics)
具体原因不再言明。

所以当你用for循环时,下标只到了2,所以你只能得到$alonewords[1]的数据,所以你只能得到
Medicine这个数据。