Please support if you like my work by payment through upi: sinhamit@icici or payment by bank
account name: Amit Kumar Sinha,
account number: 2646728782
IFSC code: KKBK0005660
SWIFT: KKBKINBB
Dealing with Individual Items of an Array in Category: पीएचपी by amit
🕙 Posted on 2023-05-17 at 05:59:30
एक ऐरे (array) के आइटम में बदलाव करना
unset() (अंतर्निहित in-built/ पूर्व-परिभाषित pre-defined) फ़ंक्शन को जानें, जो न केवल एक चर (variable) या स्थिर (constant) नाम के निर्दिष्ट (assigned) मान को नष्ट कर देता है, बल्कि यह चर नाम या स्थिर नाम को भी नष्ट कर देता है। इसका अर्थ है कि अनुरोध-प्रतिक्रिया चक्र में वह चर या स्थिर कभी मौजूद नहीं रहा है। unset()
फ़ंक्शन को सरणी (array) पर लागू करें।
<?php
$my_var = array
( "hero", 'zero', true
, 1, 2.5 );
unset
( $my_var[0] ); // केवल सरणी की पहली कुंजी को नष्ट करता है
var_dump( $my_var ); // आउटपुट पहली कुंजी, 0 नहीं दिखाता है
var_dump( $my_var[0] ); // आउटपुट ERROR प्रदर्शित करता है, क्योंकि कुंजी 0 मौजूद नहीं है
unset
( $my_var ); // संपूर्ण सरणी को नष्ट कर देता है
var_dump( $my_var ); // आउटपुट ERROR प्रदर्शित करता है, क्योंकि संपूर्ण सरणी मौजूद नहीं है
var_dump( $my_var[1] ); // आप किसी सरणी की किसी भी कुंजी से मान तक नहीं पहुंच सकते, जो मौजूद नहीं है?>
कोड की उपरोक्त पंक्तियों में, unset( $my_var[0] ) केवल पहली कुंजी को नष्ट कर देगा, या unset( $my_var[1] ) केवल दूसरी कुंजी को नष्ट कर देगा, इसी तरह... और भी। लेकिन unset( $my_var ) पूरे सरणी (array) को नष्ट कर देगा। निम्नलिखित आउटपुट में, आप देख सकते हैं कि कुंजी [0] उपरोक्त कोड की चौथी पंक्ति के आउटपुट से गायब है। उपरोक्त कोड की 5, 7 और 8 पंक्तियाँ निम्नलिखित आउटपुट (NULL
) को दर्शाता है जब कुंजी 0 या चर नाम $my_var अपरिभाषित है। लाइन 8 दो चेतावनियों को आउटपुट करती है: (1) अपरिभाषित चर नाम, और (2) NULL से कुंजी तक पहुँचने का प्रयास करना।
Warning: Undefined array key 0 in C:\xampp\
NULL
Warning: Undefined variable $my_var in C:\xampp\
NULL
Warning: Undefined variable $my_var in C:\xampp\
Warning: Trying to access array offset on value of type null in C:\xampp\
NULL
यद्यपि उपरोक्त उदाहरण यह समझाने के लिए है कि चर नाम या स्थिर नाम को नष्ट करने के लिए आपको अक्सर unset()
फ़ंक्शन का उपयोग नहीं करना चाहिए। आप में से कुछ यह तर्क दे सकते हैं कि चर या स्थिर नाम पहले से ही परिभाषित हैं, और जब भी कोई वेब-ब्राउज़र को ताज़ा (refresh) करता है तो परिणाम प्राप्त किए जा सकते हैं। याद रखें कि PHP एक स्क्रिप्टिंग भाषा है, जो एक अनुरोध-प्रतिक्रिया चक्र के परिणाम को आउटपुट करती है । इसका मतलब यह है कि आप इस वेबसाइट या किसी अन्य वेब पेज को चाहे जितनी बार रिफ्रेश करें, एक नया अनुरोध-प्रतिक्रिया चक्र शुरू हो जाता है।
इसलिए, उपरोक्त वर्णित त्रुटियों से बचने के लिए, किसी चर या निरंतर नाम को, या उसके मान (value) को नष्ट किए बिना, या आम तौर पर किसी सरणी (array) के अंदर किसी आइटम के मान को NULL
या किसी अन्य मान के साथ बदलने की आवश्यकता होती है। आइए देखें कि उपरोक्त उदाहरण के साथ, यह (बिना unset() फ़ंक्शन के) कैसे किया जा सकता है:
<?php $my_var = array
( "hero", 'zero', true
, 1, 2.5 ); ?>
<?php echo
$my_var[0]; // किसी सरणी से एक आइटम को प्राप्त करने के लिए ?><br />
<?php $my_var[0] = NULL
; // किसी आइटम के मान को बदलने के लिए ?>
<?php $my_var[3] = false
; // किसी आइटम के मान को बदलने के लिए ?>
<?php var_dump( $my_var ); ?><br />
array(5) { [0]=> NULL [1]=> string(4) "zero" [2]=> bool(true) [3]=> bool(false) [4]=> float(2.5) }
पिछले पेज में भी आपने देखा है कि किसी ऐरे के अलग-अलग आइटम से वैल्यू को कैसे प्राप्त किया जा सकता है (ऊपर उदाहरण देखें)। इसी तरह, आप डेटा को जोड़ने या बदलने के लिए, सरणी डेटा-प्रकार के चर या स्थिर नाम के ठीक बाद वर्ग कोष्ठक (खोलने और बंद करने) के भीतर, सूचकांक (index) संख्या (पूर्णांक) या अन्य डेटा-प्रकार की सूचकांक (index) कुंजी का उपयोग कर सकते हैं। PHP द्वारा समर्थित किसी भी डेटा-प्रकार का शाब्दिक मूल्य, या यहां तक कि एक चर या स्थिरांक को एक सरणी के एक अलग आइटम को निर्दिष्ट कर सकते हैं। इस तरह आप NESTED array भी बना सकते हैं।
एक ऐरे में आइटम जोड़ना
PHP एक ढीली डेटा-टाइप स्क्रिप्टिंग भाषा है। इसका अर्थ है कि एक चर नाम (या एक अनुरोध-प्रतिक्रिया चक्र में एक स्थिर नाम) किसी भी प्रकार का डेटा रख सकता है, और किसी भी समय, एक चर नाम के डेटा-प्रकार को दूसरे डेटा-प्रकार में बदला जा सकता है। आप उपयोगकर्ताओं (users) को विशिष्ट डेटा-प्रकार के डेटा इनपुट करने के लिए बाध्य कर सकते हैं, लेकिन जब इन डेटा का उपयोग CMS (सामग्री प्रबंधन प्रणाली) प्रोग्राम के अंदर किया जाता है, तो उन्हें दूसरे डेटा-प्रकारों में टाइप-कास्ट किया जा सकता है, या किसी अन्य मान में बदला जा सकता है।
वेरिएबल (चर) नाम के ठीक बाद (ओपनिंग
<?php $new_var = array
(); // एक खाली सरणी शाब्दिक को चर $new_var के लिए असाइन (निर्दिष्ट) किया गया है ?>
<?php $new_var[] = 'hello'; var_dump( $new_var ); ?><br />
<?php
$new_var = []
; /* खाली सरणी शाब्दिक को चर $new_var के लिए फिर से निर्दिष्ट गया है
एक चर नाम घोषित करना और इसे खाली सरणी शाब्दिक असाइन (निर्दिष्ट) करना आवश्यक नहीं है। लेकिन, जब वही चर नाम पहले से ही घोषित किया जाता है, तो आप किसी भी डेटा-प्रकार के मान को फिर से असाइन कर सकते हैं। */
$new_var = true
; echo $new_var; // अब, यह एक सरणी डेटा-प्रकार नहीं है।
echo '<br />';
$new_var = array()
; /* महत्वपूर्ण: उपरोक्त पंक्ति स्केलर डेटा-प्रकार का चर $new_var बनाती है, और जब आप इस पंक्ति को नहीं लिखते हैं, या इस पंक्ति को टिप्पणी (comment) करते हैं, ERROR नीचे दिखाया जाएगा */
$new_var[] = 3.14; print_r( $new_var ); echo '<br />';
$new_var[] = 'Amit'; print_r( $new_var );?>
<br />
Fatal error: Uncaught Error: Cannot use a scalar value as an array in C:\xampp\
Array ( [0] => 3.14 [1] => Amit )
उपरोक्त दो उदाहरणों से, यह आपके लिए स्पष्ट है कि (ओपनिंग[]
एक सरणी में एक नया आइटम जोड़ देगा। चर नाम के ठीक बाद ये वर्गाकार कोष्ठक, पिछले मान को नए मान से प्रतिस्थापित नहीं करेंगे। उपरोक्त OUTPUT में दूसरी पंक्ति से पता चलता है कि चर नाम, $new_var में अब दो आइटम हैं। अगले पृष्ठ में, आप विभिन्न पूर्व-निर्धारित फ़ंक्शनस (functions) को देखेंगे, जिनका विशेष रूप से सरणियों में (पहले से गठित कुंजियों के) शुरुआत में या अंत में आइटम सम्मिलित करने के लिए के लिए उपयोग किया जाता है।
<?php $new_var[] = $new_var; /* खाली सरणी शाब्दिक, या किसी भी स्केलर डेटा-प्रकार के मान को फिर से चर $new_var के लिए, असाइन किए बिना
इस उदाहरण में, चर $new_var का मान, यानी, सरणी शाब्दिक एक नई कुंजी को निर्दिष्ट किया गया है। */
echo '<pre>';
print_r( $new_var );
echo '</pre>'; आउटपुट एक नेस्टेड ऐरे है ?>
(
[0] => 3.14
[1] => Amit
[2] => Array
(
[0] => 3.14
[1] => Amit
)
)</pre>
$new_var का मान है पहले से ही RAM (अस्थायी मेमोरी) में है, और इसे CPU द्वारा संसाधित किया जाता है और एक चर नाम $new_var के अंदर एक नई कुंजी को निर्दिष्ट किया जाता है। आप उसी तरह नेस्टेड सरणी के अंदर (नेस्टेड) आइटम को आसानी से प्राप्त कर सकते हैं, या बदलाव कर सकते हैं। आपको वेरिएबल नाम के बाद स्क्वायर ब्रैकेट्स के बगल में स्क्वायर ब्रैकेट्स का एक और (शुरुआती और समापन) सेट रखना होगा, और इसी तरह ...
<?php echo $new_var[2][0]; // नेस्टेड सरणी से पहला आइटम ?>
<?php echo $new_var[2][1]; // नेस्टेड सरणी से दूसरा आइटम ?>
<?php var_dump( $new_var[2] ); // आप echo
फ़ंक्शन के साथ नेस्टेड सरणी तक नहीं पहुंच सकते ?>
एक साहचर्य सरणी बनाएँ
<?php $assoc_var = []
; // अनुक्रमित सरणी या साहचर्य सरणी के बीच कोई अंतर नहीं है ?>
<?php $assoc_var[] = 'one'; // अनुक्रमित सरणी में नया आइटम जोड़ा गया ?>
<?php $assoc_var[] = 'two'; // अनुक्रमित सरणी में एक और आइटम जोड़ा गया ?>
<?php $assoc_var['a'] = 1; // सरणी में नया कुंजी और आइटम जोड़ा गया ?>
<?php $assoc_var['b'] = 2; // अब अनुक्रमित सरणी उपरोक्त कुंजियों और वस्तुओं का मिश्रण है ?>
<?php var_dump( $assoc_var ); // ?>
आप ऊपर दिए गए OUTPUT में देख सकते हैं कि $assoc_var के अंदर वस्तुओं के लिए विभिन्न कुंजियाँ हैं। ये कुंजियाँ 0, 1, 'a' और 'b' हैं। जब आप किसी सरणी में कोई नया आइटम जोड़ते समय कोई कुंजी प्रदान नहीं करते हैं, तो अगला सबसे बड़ा पूर्णांक मान स्वचालित रूप से कुंजी (इंडेक्स नंबर) के रूप में असाइन किया जाएगा।
<?php $assoc_var[] = 'three'; // इंडेक्सेड एरे में नया आइटम जोड़ा गया ?>
<?php $assoc_var[20] = 'four'; // इंडेक्स नंबर 20 में नया आइटम जोड़ा गया ?>
<?php $assoc_var[] = 'five'; // इंडेक्सेड एरे में नया आइटम जोड़ा गया ?>
<?php var_dump( $assoc_var ); ?>
आप ऊपर बताए गए तरीके से साहचर्य प्रकार के NESTED सरणियाँ स्ट्रिंग कुंजियों आदि के साथ भी बना सकते हैं।
Leave a Comment:
Amit Sinha March 2nd, 2023 at 9:30 PM
😃 😄 😁 😆 😅 😂 😉 😊 😇 😍 😘 😚 😋 😜 😝 😶 😏 😒 😌 😔 😪 😷 😵 😎 😲 😳 😨 😰 😥 😢 😭 😱 😖 😣 😞 😓 😩 😫 😤
Ribhu March 3rd, 2023 at 9:30 PM
🐵 🐒 🐶 🐩 🐺 🐱 🐯 🐅 🐆 🐴 🐎 🐮 🐂 🐃 🐄 🐷 🐖 🐗 🐽 🐏 🐑 🐐 🐪 🐫 🐘 🐭 🐁 🐀 🐹 🐰 🐇