2013-05-22 6 views
12

पीएचपी समारोह array_slice() तत्वों के क्रम को रिटर्न द्वारा इस तरह की भरपाई:कुंजी द्वारा सरणी को टुकड़ा कैसे करें, ऑफसेट नहीं करें?

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

वर्तमान समारोह तर्क:

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

मैं कुछ इस तरह की जरूरत है:

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

कि उपरोक्त print_r के अनुसार इसे आउटपुट करता है:

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

उत्तर

13

कुंजी के ऑफसेट को खोजने के लिए, array_search() का उपयोग कुंजी के माध्यम से खोजने के लिए करें, जिसे array_keys() के साथ पुनर्प्राप्त किया जा सकता है। array_search()FALSE वापस करेगा जब निर्दिष्ट कुंजी (100) सरणी में मौजूद नहीं है ($a)।

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

प्रिंटों:

array (
    100 => 'aa', 
    101 => 'bb', 
    102 => 'cc', 
) 
संबंधित मुद्दे