0

次のコードがありますが、何が問題なのかわかりません。引数として配列を指定すると、is_array($primes) は true を返します。私がここに欠けているものはありますか?

function generate_primes($max)
{
$i = 4;
$primes = [2, 3];


while($i < $max)
{
    $isPrime = true;

    foreach($primes as $value)
    {
        if($i % $value == 0)
        {
            $isPrime = false;
            break;
        }

    }
    if($isPrime)
        $primes = $i;

    $i++;
}

return $primes;

}
4

2 に答える 2

2

$primes = $i;$primesは、最初の素数 5 を見つけた後で変数を再代入することを示しています。この時点では配列ではありません。

代わりに、これを使用します。

if($isPrime)
    array_push($primes,$i);
于 2013-04-03T22:17:34.063 に答える
1

PHP 配列タイプを使用します。

$primes = array(2, 3);

その後、新しい素数を配列に追加するとき:

array_push($primes, $i);
于 2013-04-03T22:20:03.857 に答える