array_push () कुंजी मान युग्म के साथ


183

मेरे पास एक मौजूदा सरणी है, जिसमें मैं एक मूल्य जोड़ना चाहता हूं।

मैं array_push()कोई फायदा नहीं हुआ कि हासिल करने की कोशिश कर रहा हूँ ।

नीचे मेरा कोड है:

$data = array(
    "dog" => "cat"
);

array_push($data['cat'], 'wagon');

मैं जो हासिल करना चाहता हूं, वह वैगन के साथ सरणी के लिए एक कुंजी के रूप में बिल्ली को जोड़ना है ताकि इसे स्निपेट में उपयोग कर सकें जैसे कि:$data

echo $data['cat']; // the expected output is: wagon

मैं उसे कैसे प्राप्त कर सकता हूं?

जवाबों:


334

तो क्या होने के बारे में:

$data['cat']='wagon';

चेतावनी: $a['123'] = 456;- स्ट्रिंग '123' के लिए पूर्णांक कुंजी 123. बदल जाती है
bancer

पूर्णांक कुंजियों के लिए आप उन्हें उद्धरण / स्ट्रिंग में लपेटना नहीं चाहते हैं।
शाम

51

यदि आपको कई कुंजी => मान जोड़ने की आवश्यकता है, तो यह प्रयास करें।

$data = array_merge($data, array("cat"=>"wagon","foo"=>"baar"));

1
उसके लिए एक लूप का उपयोग भी कर सकता है।
जैक पेरी

एक लूप मदद नहीं करता है। यदि आप डुप्लिकेट कुंजी नाम के साथ मान पुश करना चाहते हैं, तो आपको उपयोग करना होगाarray_merge
रिचर्ड स्मिथ

38
$data['cat'] = 'wagon';

आपको केवल सरणी में कुंजी और मान जोड़ना होगा।


6

उदाहरण के लिए:

$data = array('firstKey' => 'firstValue', 'secondKey' => 'secondValue');

मुख्य मूल्य बदलने के लिए:

$data['firstKey'] = 'changedValue'; 
//this will change value of firstKey because firstkey is available in array

उत्पादन:

ऐरे ([फर्स्टकेय] => बदलावैल्यू [सेकेंडकी] => सेकंडवैल्यू)

नई कुंजी मान जोड़ी बनाने के लिए:

$data['newKey'] = 'newValue'; 
//this will add new key and value because newKey is not available in array

उत्पादन:

ऐरे ([firstKey] => firstValue [secondKey] => secondValue [newKey] => newValue)


5

आपको array_push () फ़ंक्शन का उपयोग करने की आवश्यकता नहीं है, आप नई कुंजी को सीधे सरणी जैसे .. के लिए नया मान असाइन कर सकते हैं

$array = array("color1"=>"red", "color2"=>"blue");
$array['color3']='green';
print_r($array);


Output:

   Array(
     [color1] => red
     [color2] => blue
     [color3] => green
   )

आपको यह भी उजागर करना चाहिए कि क्या अंतर है, यहाँ आपने ओपी के बजाय = का उपयोग किया था
नितिनसिंह

1
यह कोड गलत है। array_push दो पैरामीटर लेता है, और आप इस तथ्य के बारे में एक चेतावनी प्राप्त कर रहे होंगे कि आप इसे गलत तरीके से उपयोग कर रहे हैं कि array_push पर कॉल कुछ नहीं करता है। आपके कोड की दूसरी पंक्ति वास्तव में क्या कर रही है $array['color3']='green'। ठीक वैसा ही @dusoft ने ऊपर किया। आपका कोड उस समाधान का सिर्फ एक संदर्भ है।
रिचर्ड स्मिथ

@RichardSmith मेरी गलती दिखाने के लिए धन्यवाद, मैंने अपना जवाब बदल दिया है। :)
दीपक वैष्णव

0

ऐरे ['की'] = मूल्य;

$data['cat'] = 'wagon';

यह वही चीज़ है जिसकी आपको आवश्यकता है। इसके लिए array_push () फ़ंक्शन का उपयोग करने की आवश्यकता नहीं है। कुछ समय समस्या बहुत सरल है और हम जटिल तरीके से सोचते हैं :)।


-3

बस ऐसा करें:

$data = [
    "dog" => "cat"
];

array_push($data, ['cat' => 'wagon']);

* Php 7 और उच्चतर में, सरणी [] का उपयोग करके बना रही है, नहीं ()


दो समस्याएं: array_pushनए मूल्यों के रूप में इसके 2 + मापदंडों को जोड़ता है (कुंजी-मूल्य युग्मों के रूप में array_mergeनहीं), और PHP 7 खुशी से array()सरणी सिंटैक्स (साथ ही शॉर्टहैंड []सिंटैक्स) को स्वीकार करता है
क्रिस फॉरेन्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.