PHP में एक सरणी की शुरुआत में एक आइटम कैसे डालें?


167

मुझे पता है कि इसे अंत तक कैसे सम्मिलित करना है:

$arr[] = $item;

लेकिन इसे शुरुआत में कैसे डालें?


2
$arr[-1] = $item;यहां मिले: stackoverflow.com/a/15252657/669677

4
@ 2astalavista, जो काम नहीं करता है: print_r($arr)=>Array ( [0] => a, [1] => b, [-1] => c )
laurent

@ returnthis.lau_ इस मामले में आपको लूप के लिए उपयोग करना चाहिए - -1 से शुरू - इसे काम करने के लिए: for ($i = -1; $i < count($a)-1; $i++)जैसा कि संदर्भित लिंक ने दिखाया, लेकिन यह भूलना आसान है, इसलिए मैं उस समाधान को और अधिक पसंद नहीं करता हूं।

जवाबों:


267

Array_unshift ($ array, $ item) का उपयोग करें ;

$arr = array('item2', 'item3', 'item4');
array_unshift($arr , 'item1');
print_r($arr);

तुम्हे दूंगा

Array
(
 [0] => item1
 [1] => item2
 [2] => item3
 [3] => item4
)

7
यदि आपको संख्यात्मक, कुंजी के बजाय शाब्दिक की आवश्यकता है, तो क्या होगा?
इवान

4
@Evan, के लिए दस्तावेज़ array_unshiftकहते हैं निम्नलिखितAll numerical array keys will be modified to start counting from zero while literal keys won't be touched.
craned

1
दो समस्याएँ हैं: 1) सरणी 2 को reindexing) एक इंडेक्स के साथ आइटम नहीं जोड़ सकते।
नबी काज

2
यदि आपके पास एक सहयोगी सरणी है या कुंजियों को संरक्षित करने की आवश्यकता है, तो उपयोगकर्ता के उदाहरण यहां देखें: php.net/manual/en/function.array-unshift.php इसे पूरा करने के लिए कुछ अच्छे उदाहरण हैं!
वलियर

112

एक साहचर्य सरणी या क्रमांकित सरणी के मामले में जहाँ आप सरणी कुंजियाँ नहीं बदलना चाहते हैं:

$firstItem = array('foo' => 'bar');

$arr = $firstItem + $arr;

array_merge काम नहीं करता क्योंकि यह हमेशा सरणी को reindexes करता है।


6
यह वास्तव में सबसे अच्छा जवाब है!
अंकित

5
ध्यान! "+ ऑपरेटर बाएं हाथ के सरणी में जोड़े गए दाएं हाथ के सरणी को लौटाता है; दोनों सरणियों में मौजूद कुंजियों के लिए, बाएं हाथ के सरणी से तत्वों का उपयोग किया जाएगा, और दाएं हाथ के सरणी से मेल खाने वाले तत्व होंगे अवहेलना करना।" - देखें: stackoverflow.com/a/2140094/3411766
Cottton

इसका समाधान अच्छा है क्योंकि यह एक इंडेक्स के साथ आइटम को जोड़ सकता है, और सरणी को फिर से विभाजित नहीं कर सकता है; लेकिन दाहिने हाथ के सरणी में हटाए गए आइटम के बारे में सिर्फ एक नोट है, अगर बाएं हाथ के सरणी में समान सूचकांक हैं।
नबी काज


6

स्ट्रिंग / कस्टम इंडेक्स कुंजी के साथ साहचर्य सरणी की शुरुआत में एक आइटम डालें

<?php

$array = ['keyOne'=>'valueOne', 'keyTwo'=>'valueTwo'];

$array = array_reverse($array);

$array['newKey'] = 'newValue';

$array = array_reverse($array);

परिणाम

[
  'newKey' => 'newValue',
  'keyOne' => 'valueOne',
  'keyTwo' => 'valueTwo'
]


4

सरणी में पहला तत्व डालने के लिए array_unshift () का उपयोग करें ।

उपयोगकर्ता array_shift () सरणी का पहला तत्व निकालने के लिए।


4

या आप अस्थायी सरणी का उपयोग कर सकते हैं और फिर वास्तविक को हटा सकते हैं यदि आप इसे चक्र में रहते हुए बदलना चाहते हैं:

$array = array(0 => 'a', 1 => 'b', 2 => 'c');
$temp_array = $array[1];

unset($array[1]);
array_unshift($array , $temp_array);

उत्पादन होगा:

array(0 => 'b', 1 => 'a', 2 => 'c')

और जब आप इसे चक्र में कर रहे हैं, तो आपको $temp_arrayआइटम को सरणी में जोड़ने के बाद साफ करना चाहिए ।


1

कस्टम इंडेक्स के साथ:

$arr=array("a"=>"one", "b"=>"two");
    $arr=array("c"=>"three", "d"=>"four").$arr;

    print_r($arr);
    -------------------
    output:
    ----------------
    Array
    (
    [c]=["three"]
    [d]=["four"]
    [a]=["two"]
    [b]=["one"]
    )

1
किसी सरणी को इस तरह से परिवर्तित नहीं किया जा सकता है
बैटल हॉक

संभवतः वह अल्पविराम (।) के बजाय प्लस (+) का उपयोग करने का मतलब था
एरडेन meantorbacı

1

एक साहचर्य सरणी के लिए आप केवल मर्ज का उपयोग कर सकते हैं।

$arr = array('item2', 'item3', 'item4');
$arr = array_merge(array('item1'), $arr)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.