2013-05-22 11 views
12

PHP funkcja array_slice() zwraca sekwencję elementów przez przesunięcie tak:Jak wyciąć tablicę według klucza, a nie odsunąć?

// sample data 
$a = array('a','b','c',100=>'aa',101=>'bb',102=>'cc'); 

// outputs empty array because offset 100 not defined 
print_r(array_slice($a,100)); 

Aktualne argumentów funkcji:

array_slice ($array, $offset, $length, $preserve_keys) 

muszę coś takiego:

array_slice ($array, **$key**, $length, $preserve_keys) 

Że wyprowadza to zgodnie z powyższym print_r:

array (
    100 => aa, 
    101 => bb, 
    102 => cc 
) 

Odpowiedz

13

Aby znaleźć przesunięcie klawisza, użyj array_search(), aby wyszukać klucze, które można pobrać za pomocą array_keys(). array_search() zwróci FALSE, gdy określony klucz (100) nie będzie obecny w tablicy ($a).

$key = array_search(100, array_keys($a), true); 
if ($key !== false) { 
    $slice = array_slice($a, $key, null, true); 
    var_export($slice); 
} 

Wydruki:

array (
    100 => 'aa', 
    101 => 'bb', 
    102 => 'cc', 
) 
Powiązane problemy