मैं की तरहदिया संबंधित कुंजी के साथ सरणी कुंजी की जगह
नीचे$old = array(
'a' => 'blah',
'b' => 'key',
'c' => 'amazing',
'd' => array(
0 => 'want to replace',
1 => 'yes I want to'
)
);
मैं महत्वपूर्ण जानकारी के साथ बदलने के लिए कुंजी होने एक और सरणी है एक सरणी है।
$keyReplaceInfoz = array('a' => 'newA', 'b' => 'newB', 'c' => 'newC', 'd' => 'newD');
मैं सरणी $keyReplaceInfo
में संबंधित मूल्यों के साथ सरणी $old
के सभी कुंजी को बदलने के लिए की जरूरत है।
आउटपुट इस
$old = array(
'newA' => 'blah',
'newB' => 'key',
'newC' => 'amazing',
'newD' => array(
0 => 'want to replace',
1 => 'yes I want to'
)
);
मैं मैन्युअल रूप से नीचे के रूप में यह करने के लिए किया था की तरह होना चाहिए। मैं बेहतर विकल्प की उम्मीद कर रहा हूं। क्या कोई इसे पूरा करने के लिए बेहतर तरीका सुझा सकता है?
$new = array();
foreach ($old as $key => $value)
{
$new[$keyReplaceInfoz[$key]] = $value;
}
मुझे पता है कि यह अधिक सरल हो सकता है।
'array_combine' केवल तभी काम करेगा जब कुंजी और मान सही क्रम में हों, और प्रत्येक कुंजी के लिए एक प्रतिस्थापन है। (मैंने इसे स्वयं एक समाधान के रूप में देखा)। – Leigh
वास्तव में उपर्युक्त के साथ एकमात्र समस्या यह है कि यदि प्रत्येक कुंजी के प्रतिस्थापन नहीं होता है तो यह काम नहीं करेगा। Array_merge ($ old, $ keyReplaceInfoz) की वजह से ऑर्डरिंग कोई समस्या नहीं है। – Summoner
तत्वों के अंक से संबंधित कुछ समस्याएं हैं। यदि प्रतिस्थापन सरणी में एक कुंजी है जो पुराने सरणी में नहीं है, तो एक PHP चेतावनी होगी (और कुछ भी नहीं बदला जाएगा)। यदि प्रतिस्थापन सरणी पुराने सरणी से एक कुंजी गुम है, तो पुरानी सरणी में कुंजी को इसके अपने _value_ – Leigh