如何将此for循环转换为while循环?

时间:2014-07-07 18:20:42

标签: php for-loop while-loop

我试图让它适应循环:

    $nombresArreglo = ['John','Bruce Lee','Bill Gates','Pedro','Juan','Maria','James    Gosling','Andres'];

    $nombre = 'Bill Gates';

    $resultado = false;

    $i=2;

    for ($i = 0;$i < count($nombresArreglo); $i++){ 

        if ($nombresArreglo[$i] == $nombre){
        $resultado = true;
        break;
        }
    }

    if ($resultado == true){
        echo $nombre . ' found!';
    }
    else{
    echo $nombre. ' doesnt exists';
    }

到这一个:

    while ($i < count($nombresArreglo)){

        if ($nombresArreglo[$i] == $nombre){
            $resultado = true;
            break;
        }    
        if ($resultado == true){
            echo $nombre . ' found';
        }
    }

但我无法找到使其有效的方法。它给了我一个空页面。提前谢谢。

2 个答案:

答案 0 :(得分:0)

$resultado = false;
while($value = array_shift($nombresArreglo)) {
    if ($nombre === $value) {
        $resultado = true;
        break;
    }
}

注意:执行此循环后,数组$nombresArreglo将为空,只有在您不再需要此数组时才会有效

答案 1 :(得分:0)

只需使用简单的控制结构,首先初始化,然后是条件,并且不要忘记增量。你忘了初始化和增量。一个例子:

$nombresArreglo = ['John','Bruce Lee','Bill Gates','Pedro','Juan','Maria','James Gosling','Andres'];
$nombre = 'Bill Gates';
$resultado = false;
$i = 0; // <-- you forget initilize
while($i != sizeof($nombresArreglo)-1) { // <-- condition
    if($nombresArreglo[$i] == $nombre) {
        echo $nombre . ' found! at index ' . $i;
        $resultado = true;
    }
    $i++; // <-- you forget increment
}

输出将如下:Bill Gates found! at index 2