PHP में खाली सरणी में तत्वों को कैसे जोड़ा जाए?


488

अगर मैं PHP में एक सरणी को परिभाषित करता हूं जैसे (मैं इसके आकार को परिभाषित नहीं करता):

$cart = array();

क्या मैं निम्नलिखित तत्वों का उपयोग करके इसे आसानी से जोड़ सकता हूँ?

$cart[] = 13;
$cart[] = "foo";
$cart[] = obj;

PHP में सरणियों में एक ऐड मेथड नहीं है, उदाहरण के लिए cart.add(13),?

जवाबों:


802

दोनों array_pushऔर आपके द्वारा वर्णित विधि काम करेगी।

$cart = array();
$cart[] = 13;
$cart[] = 14;
// etc

//Above is correct. but below one is for further understanding
$cart = array();
for($i=0;$i<=5;$i++){
    $cart[] = $i;  
}
echo "<pre>";
print_r($cart);
echo "</pre>";

के समान है:

<?php
$cart = array();
array_push($cart, 13);
array_push($cart, 14);

// Or 
$cart = array();
array_push($cart, 13, 14);
?>

178
जैसा कि PHP दस्तावेज़ीकरण में कहा गया है, यदि आप केवल एक ही तत्व को हर बार (जैसे लूप में) या एक ही तत्व को एक बार धकेल रहे हैं, तो केवल $cart[] = 13विधि का उपयोग करना सबसे अच्छा है क्योंकि यह एक ही ऑपरेशन करने के लिए कम वर्ण है, लेकिन यह एक फ़ंक्शन कॉल का प्रदर्शन ओवरहेड भी नहीं करता है, जो array_push () होगा। संपादित करें: लेकिन, महान जवाब। प्रभावी रूप से समान, और बहुसंख्यक उपयोगों में भी एक प्रदर्शन अंतर नहीं दिखेगा, लेकिन उन बारीकियों को जानने में मदद करता है।
Mattygabe

67
क्या यह सिर्फ मुझे या $cart[]=...वाक्य रचना को, पहली नज़र में, एक चर असाइनमेंट जैसा लगता है और एक निहित array_push नहीं है?
ब्रैड हेन

6
यह निश्चित रूप से मेरे लिए है। मैं इसकी व्याख्या नहीं करूंगा कि इसका असाइनमेंट क्यों नहीं है
सीमांत नारियल

4
$ गाड़ी [] = 13; ज्यादा तेज़ है। कम पात्र हैं और बेहतर लगते हैं।
गैल ब्राच

19
मैं बस अपने वैकल्पिक दृष्टिकोण की पेशकश करूंगा कि यह बहुत ही अन्य भाषा प्रोग्रामर के लिए कार्ट का सिंटैक्स पढ़ने के लिए भ्रामक है [] = ..., मुझे बहुत सारी भाषाओं के साथ अनुभव मिला है और मुझे कभी भी अनुमान नहीं होगा कि यह क्या करता है।
एरती-क्रिस इल्मा

75

इसका उपयोग न करना बेहतर है array_pushऔर आपने जो सुझाव दिया है, उसका उपयोग करें। फ़ंक्शंस बस ओवरहेड जोड़ते हैं।

//We don't need to define the array, but in many cases it's the best solution.
$cart = array();

//Automatic new integer key higher than the highest 
//existing integer key in the array, starts at 0.
$cart[] = 13;
$cart[] = 'text';

//Numeric key
$cart[4] = $object;

//Text key (assoc)
$cart['key'] = 'test';

11
"यदि आप लूप में किसी सरणी में कई मान जोड़ रहे हैं, तो बार-बार की तुलना में array_push का उपयोग करना तेज़ होता है [] = statement" php.net/manual/en/function.array-push.php#84959
Glass

3
यदि आपका उपयोग-मामला एक बार में एक आइटम या आइटम जोड़ रहा है, तो बिल्कुल सही है। यदि सभी मानों को एक ही समय में जाना जाता है, तो संभवत: यह सबसे अच्छा है कि आप सरणी_पॉश नोटेशन का उपयोग कर सकते हैं, यह निर्भर करता है कि हर बार सरणी नाम को पुनः टाइप करने से कितने आइटम अतिरिक्त वर्ण जोड़े जाने चाहिए, जो फ़ंक्शन कॉल की तुलना में प्रदर्शन बाधा के अधिक हो सकते हैं ओवर-सिर। हमेशा की तरह, निर्णय का चयन करते समय प्रयोग किया जाना चाहिए। अच्छा जवाब!
मैट्टीबेगा

2
यह उत्तर सबसे पूर्ण है।
लोकियास

10

आप array_push का उपयोग कर सकते हैं । यह एरे के अंत में तत्वों को जोड़ता है, जैसे स्टैक में।

आप इसे इस तरह भी कर सकते हैं:

$cart = array(13, "foo", $obj);

10

मेरे अनुभव के आधार पर, आप समाधान ठीक है (सबसे अच्छा) जब चाबियाँ महत्वपूर्ण नहीं हैं:

$cart = [];
$cart[] = 13;
$cart[] = "foo";
$cart[] = obj;

2

याद रखें, यह विधि पहले सरणी को ओवरराइट कर देती है, इसलिए केवल तभी उपयोग करें जब आप सुनिश्चित हों!

$arr1 = $arr1 + $arr2;

( स्रोत देखें )


1
नीच क्यों, क्या कोई समझा सकता है कि यह बुरा क्यों है? क्या यह असुरक्षित है?
सैंडी

4
@ सिन्डीबेक इसका जवाब नहीं है
mateos

2
$cart = array();
$cart[] = 11;
$cart[] = 15;

// etc

//Above is correct. but below one is for further understanding

$cart = array();
for($i = 0; $i <= 5; $i++){
          $cart[] = $i;  

//if you write $cart = [$i]; you will only take last $i value as first element in array.

}
echo "<pre>";
print_r($cart);
echo "</pre>";

$ गाड़ी [] = $ i; - कोड का वह हिस्सा सरणी में तत्वों को जोड़ता है ----> $ गाड़ी = [$ i]; - इस संकलक पारित करेंगे लेकिन आप आप क्या चाहते हैं नहीं मिलेगा
unpluggeDloop

0
$products_arr["passenger_details"]=array();
array_push($products_arr["passenger_details"],array("Name"=>"Isuru Eshan","E-Mail"=>"isuru.eshan@gmail.com"));
echo "<pre>";
echo json_encode($products_arr,JSON_PRETTY_PRINT);
echo "</pre>";

//OR

$countries = array();
$countries["DK"] = array("code"=>"DK","name"=>"Denmark","d_code"=>"+45");
$countries["DJ"] = array("code"=>"DJ","name"=>"Djibouti","d_code"=>"+253");
$countries["DM"] = array("code"=>"DM","name"=>"Dominica","d_code"=>"+1");
foreach ($countries as $country){
echo "<pre>";
echo print_r($country);
echo "</pre>";
}

-1

जब कोई शून्य-आधारित तत्व अनुक्रमण के साथ तत्वों को जोड़ना चाहता है, तो मुझे लगता है कि यह भी काम करेगा:

// adding elements to an array with zero-based index
$matrix= array();
$matrix[count($matrix)]= 'element 1';
$matrix[count($matrix)]= 'element 2';
...
$matrix[count($matrix)]= 'element N';
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.