2011-01-25 12 views
10

Decir que tengo una función que devuelve una matriz como esta ...¿Hay una manera limpia de * omitir * un índice de matriz usando `` list() `de PHP?

array(
    0 => 'jpg', 
    1 => 400, 
    2 => 500 
); 

Quiero que los índices 1 y 2 solamente, y los quiero como variables locales. No importa 0.

que podía hacer ...

list($throwaway, $width, $height) = getImageDetails($imagePath); 
unset($throwaway); 

... pero obviamente eso es muy feo.

Intenté colocar NULL allí, pero obtuve el error de resolución del osciloscopio.

¿Hay una manera limpia de omitir un índice de matriz utilizando PHP list()?

Respuesta

21

Sí, no llenar ese argumento, esto es perfectamente válida:

list(, $width, $height) = getImageDetails($imagePath); 

(ver también Example 1 in the manual)

+2

@ # $%! ¡Recuerdo haber hecho esto en el pasado! ¡Gracias por su respuesta y trotando mi memoria! – alex

4

Por el bien de otro de una sola línea:

list($width, $height) = array_slice(getImageDetails($imagePath), 1, 2); 

Demo.

Luego está el algo más entretenido:

list($height, $width) = array_reverse(getImageDetails($imagePath)); 

Demo.

+0

+1 para su pensamiento creativo =} – alex

+0

+1 por mostrarme el sitio ideone.com! – JasonDavis

Cuestiones relacionadas