2012-05-08 10 views
78

प्रश्न यह है कि कुंजी को रीसेट कैसे करें।php में सरणी तत्वों की कुंजी रीसेट करें?

Array ( 
    [1_Name] => Array ( 
     [1] => leo 
     [4] => NULL 
    ) 
    [1_Phone] => Array ( 
     [1] => 12345 
     [4] => 434324 
    ) 
) 

रीसेट करने के लिए: एक सरणी के लिए

Array ( 
    [1_Name] => Array ( 
     [0] => leo 
     [1] => NULL 
    ) 
    [1_Phone] => Array ( 
     [0] => 12345 
     [1] => 434324 
    ) 
) 
+0

चेक इस उत्तर: http://stackoverflow.com/questions/5943149/rebase-array-k eys-after-unsetting-elements/24332702 # 24332702 –

उत्तर

202

पुनर्स्थापित करने के लिए एक सरणी में सभी सरणियों की चाबी रीसेट करने के लिए:

$arr = array_map('array_values', $arr); 

यदि आप केवल प्रथम-स्तरीय सरणी कुंजियों को रीसेट करना चाहते हैं, तो array_values()array_map के बिना उपयोग करें।

+3

यह सही उत्तर है, धन्यवाद –

+1

किसी कारण से मेरी सरणी की चाबियाँ रीसेट नहीं की गई थी, केवल 'array_values' फ़ंक्शन का उपयोग करना था। –

+0

@SSH क्या आपने इसका उपयोग * सरणी * सरणी * पर किया था, जैसा कि यहां कहा गया था? – deceze

118
$array[9] = 'Apple'; 
$array[12] = 'Orange'; 
$array[5] = 'Peach'; 

$array = array_values($array); 
इस समारोह के माध्यम से

आप अपने सरणी रीसेट कर सकते हैं

$array[0] = 'Apple'; 
$array[1] = 'Orange'; 
$array[2] = 'Peach'; 
+4

मुझे लगता है कि यह सबमिट किए गए एक से बेहतर जवाब है, लेकिन यह सिर्फ मुझे है –

+1

आपका उत्तर बहुत बेहतर है तो चयनित एक – Vivek

6

यहाँ आप जिस तरह से बीच के अंतर को देख सकते हैं कि deceze सरल array_values दृष्टिकोण की तुलना की पेशकश की:

सरणी:

$array['a'][0] = array('x' => 1, 'y' => 2, 'z' => 3); 
$array['a'][5] = array('x' => 4, 'y' => 5, 'z' => 6); 

$array['b'][1] = array('x' => 7, 'y' => 8, 'z' => 9); 
$array['b'][7] = array('x' => 10, 'y' => 11, 'z' => 12); 

में

$array = array_map('array_values', $array); 
print_r($array); 

/* Output */ 

Array 
(
    [a] => Array 
     (
      [0] => Array 
       (
        [x] => 1 
        [y] => 2 
        [z] => 3 
       ) 
      [1] => Array 
       (
        [x] => 4 
        [y] => 5 
        [z] => 6 
       ) 
     ) 
    [b] => Array 
     (
      [0] => Array 
       (
        [x] => 7 
        [y] => 8 
        [z] => 9 
       ) 

      [1] => Array 
       (
        [x] => 10 
        [y] => 11 
        [z] => 12 
       ) 
     ) 
) 

और यहाँ अपने उत्पादन अगर आप केवल array_values समारोह का उपयोग करें:

$array = array_values($array); 
print_r($array); 

/* Output */ 

Array 
(
    [0] => Array 
     (
      [0] => Array 
       (
        [x] => 1 
        [y] => 2 
        [z] => 3 
       ) 
      [5] => Array 
       (
        [x] => 4 
        [y] => 5 
        [z] => 6 
       ) 
     ) 
    [1] => Array 
     (
      [1] => Array 
       (
        [x] => 7 
        [y] => 8 
        [z] => 9 
       ) 
      [7] => Array 
       (
        [x] => 10 
        [y] => 11 
        [z] => 12 
       ) 
     ) 
) 
-7

पीएचपी देशी समारोह इस के लिए मौजूद हैतरह से, यहाँ उत्पादन होता है। http://php.net/manual/en/function.reset.php

आप यह कर देखें: mixed reset (array &$array)

+2

कृपया मैन्युअल को पढ़ें ' फिर से लिंक कर रहे हैं; 'रीसेट' कुछ और करता है। – deceze

2
$result = ['5' => 'cherry', '7' => 'apple']; 
array_multisort($result, SORT_ASC); 
print_r($result); 

सरणी ([0] => सेब [1] => चेरी)

//... 
array_multisort($result, SORT_DESC); 
//... 

सरणी ([0] => चेरी [1 ] => सेब)

संबंधित मुद्दे