मेरे पास यह सरणी है:
$datas = array(
array(
'id' => '1',
'country' => 'Canada',
'cities' => array(
array(
'city' => 'Montreal',
'lang' => 'french'
),
array(
'city' => 'Ottawa',
'lang' => 'english'
)
)
)
);
प्रश्न 1:
जब मेरे पास id
है तो मुझे country
नाम कैसे मिलेगा?
मैंने कोशिश की: $datas['id'][1] => 'country'
प्रश्न 2:
जब मेरे पास id
है तो मैं cities
में कैसे लूप कर सकता हूं?
मैंने कोशिश की:
foreach ($datas as $data => $info) {
foreach ($info['cities'] as $item) {
echo '<li>'.$item['city'].'</li>';
}
}
बहुत - बहुत धन्यवाद।
2 जवाब
आपके पास उस सरणी की आईडी है जिसका आप विश्लेषण करना चाहते हैं, लेकिन आपकी सरणी को मानचित्र के रूप में संरचित किया गया है, जिसका अर्थ है कि बाहरी सरणी में कोई कुंजी नहीं है। इसलिए आप जिस वस्तु की तलाश कर रहे हैं उसे खोजने के लिए आपको पहले सरणी को पुनरावृत्त करना होगा।
जबकि पहला तरीका उस वस्तु की खोज करना होगा जिसमें वह आईडी है जिसकी आप तलाश कर रहे हैं, मेरा सुझाव है कि आप अपने सरणियों को उनकी आईडी से मैप करें। ऐसा करने के लिए, आप दो PHP सरणी फ़ंक्शंस का उपयोग कर सकते हैं: array_column
और array_combine
।
array_column
एक सरणी में प्रत्येक तत्व के एक विशिष्ट क्षेत्र को निकाल सकता है। चूंकि आपके पास कई देश ऑब्जेक्ट हैं, इसलिए हम बाद में इसे एक कुंजी के रूप में उपयोग करने के लिए इससे आईडी निकालना चाहते हैं।
array_combine
एक नई सहयोगी सरणी बनाने के लिए एक ही आकार के दो सरणियाँ लेता है। फिर पहली सरणी के मानों को कुंजियों के रूप में उपयोग किया जाएगा, जबकि दूसरे सरणी के मानों को मानों के रूप में उपयोग किया जाएगा।
$mappedCountries = array_combine(array_column($datas, 'id'), $datas);
यह मानते हुए कि कुंजी 1
चर $key = 1;
में संग्रहीत है, आप बाद में देश का नाम प्राप्त करने के लिए $mappedCountries[$key]['country']
और शहरों को प्राप्त करने के लिए $mappedCountries[$key]['cities']
का उपयोग कर सकते हैं, जिस पर आप फिर पुनरावृति कर सकते हैं।
यदि $datas
में कई सरणियाँ हो सकती हैं और आप आईडी (या किसी अन्य कुंजी) द्वारा एक खोजना चाहते हैं, तो आप कुछ इस तरह कर सकते हैं:
function search($datas, $key, $value) {
foreach($datas as $data) {
if ($data[$key] === $value) {
return $data;
}
}
तो अगर आप यह पता लगाना चाहते हैं कि id = 1 . कहाँ है $result = search($datas, 'id', '1');
और फिर आप देश echo $result['country']
या जो कुछ भी आपको चाहिए उसे प्राप्त कर सकते हैं।
संबंधित सवाल
नए सवाल
php
PHP एक व्यापक रूप से उपयोग किया जाता है, उच्च-स्तरीय, गतिशील, वस्तु-उन्मुख, और व्याख्या की गई स्क्रिप्टिंग भाषा मुख्य रूप से सर्वर-साइड वेब विकास के लिए डिज़ाइन की गई है। PHP भाषा के बारे में सवालों के लिए इस्तेमाल किया।