quinta-feira, março 30, 2017

FOREACH e LIST no PHP - Problema na instrução

Prezados,

No manual do PHP em http://php.net/manual/pt_BR/control-structures.foreach.php, há um problema na instrução quando se usa o "foreach" com "list", no exemplo descrito está:

$array = [
    [1, 2],
    [3, 4],
];

foreach ($array as list($a, $b)) {
    // $a contains the first element of the nested array,
    // and $b contains the second element.
    echo "A: $a; B: $b\n";
}

Mas há um problema na linha "foreach ($array as list($a, $b)) {" onde ocorre o problema "Notice: Undefined offset:" e o código não executa.

Buscando na internet uma solução, encontrei no fórum "https://bugs.php.net/bug.php?id=10203" a seguinte solução do usuário "torben@php.net":

$arr = array(array(1, 2), array(3, 4));
foreach ($arr as $narr) {
    list($a, $b) = array_values($narr);
    echo "$a, $b\n";
}

Dessa forma o loop funcionou como o esperado para o propósito do array.

Abraços.

Nenhum comentário: