एक नियमित सरणी से समान कुंजियों और मूल्यों के साथ एक एशोक सरणी बनाएं


85

मेरे पास एक सरणी है जो दिखता है

$numbers = array('first', 'second', 'third');

मैं एक ऐसा फंक्शन चाहता हूं जो इस एरे को इनपुट के रूप में ले और एक एरे को लौटाए जो इस तरह दिखाई देगा:

array(
'first' => 'first',
'second' => 'second',
'third' => 'third'
)

मुझे आश्चर्य है कि अगर यह संभव है array_walk_recursiveकि इसी तरह का उपयोग किया जाए ...


वाह, आपके उत्तर के लिए धन्यवाद इतनी जल्दी। पहले दो जवाब काम करेंगे, लेकिन मैं अभी कुछ ज्यादा ही खूबसूरत लग रही थी।
जिमीश

जवाबों:


172

आप array_combineफ़ंक्शन का उपयोग कर सकते हैं , जैसे:

$numbers = array('first', 'second', 'third');
$result = array_combine($numbers, $numbers);

1
यह वन-लाइनर्स के लिए बहुत अच्छा है। यहां समाप्ति महीने के लिए उपयोग मामला है: $ महीने = array_combine (श्रेणी (दिनांक (Y ')), दिनांक (' Y ​​') + 10), सीमा (दिनांक (' Y ​​'), दिनांक (' Y ​​') + 10 ))।
19i पर axiom82

4

यह सरल दृष्टिकोण काम करना चाहिए:

$new_array = array();
foreach($numbers as $n){
  $new_array[$n] = $n;
}

आप कुछ ऐसा भी कर सकते हैं:

array_combine(array_values($numbers), array_values($numbers))


0

यह करना चाहिए।

function toAssoc($array) {
    $new_array = array();
    foreach($array as $value) {
        $new_array[$value] = $value;
    }       
    return $new_array;
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.