2013-05-22 28 views
12

PHP chức năng array_slice() trả về chuỗi các phần tử bằng cách bù đắp như thế này:Làm thế nào để cắt một mảng bằng phím, không bù đắp?

// 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)); 

hiện tại đối số chức năng:

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

tôi cần một cái gì đó như thế này:

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

Đó xuất kết quả này theo print_r ở trên:

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

Trả lời

13

Để tìm bù đắp của khóa, hãy sử dụng array_search() để tìm kiếm thông qua các phím, có thể được truy xuất bằng array_keys(). array_search() sẽ trả lại FALSE khi khóa được chỉ định (100) không có trong mảng ($a).

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

Prints:

array (
    100 => 'aa', 
    101 => 'bb', 
    102 => 'cc', 
) 
Các vấn đề liên quan