2011-01-25 10 views
10

PHP'nin `` listesi() `kullanarak bir dizi dizini * atlamak için temiz bir yol var mı?

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

Ben sadece endeksler 1 ve 2 istiyorum ... Böyle bir diziyi döndüren bir işlevi var ki, ben yerel değişkenler olarak onları istiyorum. Yapabileceğim

0. hakkında ben ...

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

umurumda değil ... ama belli ki çok çirkin.

Orada NULL yerleştirmeyi denedim, ancak kapsam çözümleme hatası aldım.

sayfasının numaralı dizini, PHP'nin list() kullanarak bir dizi dizini için temiz bir yolu var mı?

cevap

21

Evet, bu argüman doldurmak değil, bu mükemmel geçerlidir:

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

:

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

başka bir-liner uğruna

+2

! Bunu geçmişte yaptığımı hatırlıyorum! Cevabınız için teşekkürler ve hafızamı koşu! – alex

4

(ayrıca Example 1 in the manual bakınız) Demo.

Ardından biraz daha eğlenceli: # $% @

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

Demo.

+0

+1 yaratıcı düşünceniz için =} – alex

+0

+1 ideone.com sitesini bana gösterdi! – JasonDavis

İlgili konular