Php में सरणी तत्वों की कुंजी रीसेट करें?


124

सवाल यह है कि सरणी के लिए कुंजी को रीसेट कैसे किया जाए:

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

इस उत्तर की जाँच करें: stackoverflow.com/questions/5943149/…
Web_Developer

जवाबों:


294

किसी सरणी में सभी सरणियों की कुंजी को रीसेट करने के लिए:

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

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


9
किसी कारण से मेरे सरणी की कुंजियों को रीसेट नहीं किया, बस array_valuesफ़ंक्शन का उपयोग करना पड़ा ।
SSH दिस

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

1
नहीं, यह समस्या थी, मैंने सोचा कि यह "सरणी तत्वों की कुंजी को रीसेट करना" था, यह नहीं है।
एसएसएच इस

3
आपको array_map का उपयोग करने की आवश्यकता नहीं है: $ ret = array_values ​​($ ret); सांख्यिक कुंजी को रीसेट करने के लिए पर्याप्त है
मारेक लेवांडोव्स्की

2
मुझे नहीं पता कि मूल्यों को रीसेट करने के लिए array_values ​​का उपयोग प्रलेखित है, लेकिन यह होना चाहिए। यह वास्तव में मैं लिख रहा था लाइनों की संख्या में कटौती में मदद की :) :)
carbontwelve

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

$array = array_values($array);

इस फ़ंक्शन के माध्यम से आप अपने एरे को रीसेट कर सकते हैं

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

इस समाधान ने मेरे लिए काम किया
अमीरहोसिन तार्मास्ट


8

यहाँ आप उस तरीके के बीच अंतर देख सकते हैं जो कि सरल दृष्टिकोण की तुलना में धोखा दिया गया था 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);

इसके decezeअलावा, यहां आपका आउटपुट है:

$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
                )
        )
)

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

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

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

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


-7

इसके लिए PHP देशी फ़ंक्शन मौजूद है। Http://php.net/manual/en/function.reset.php देखें

बस यह करें: mixed reset ( array &$array )


4
कृपया उस मैनुअल को पढ़ें जिसे आप लिंक कर रहे हैं; resetकुछ और करता है
deceze

यह सरणी के पहले तत्व के लिए सिर्फ पॉइंटर है। डिफ़ॉल्ट स्थिति 0, 1, 2 ... एन में कुंजियों को छोड़ने का टॉपिकस्टार्टर तरीका।
स्लोस्वरमैन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.