2012-09-24 17 views
6

मैं सरणी में कुंजियों का नाम कैसे बदल सकता हूं?PHP एक सरणी की कुंजी का नाम बदलें

इस सरणी नामित $ start_array के साथ शुरू,

[0] => 
     [date] => 2012-05-01 
     [revenue] => 100 
[1] => 
     [date] => 2012-05-02 
     [revenue] => 200 

और 'तारीख' और 'राजस्व' के लिए कुंजी बदलें ताकि आप मिल इस $ final_array:

[0] => 
     [x] => 2012-05-01 
     [y] => 100 
[1] => 
     [x] => 2012-05-02 
     [y] => 200 

यहाँ मेरी भयानक प्रयास है जो काम करता है लेकिन गन्दा है।

$final_array = array(); 
$max = count($start_array); 
for ($j = 0; $j < $max; $j++) { 
    $final_array[] = array('x' => $start_array[$j]['dateid'], 'y' => $start_array[$j]['ctrl_version_revenue']); 
} 
+1

इसे उन प्रमुख नामों के साथ नहीं बनाएगा जिन्हें आप पहली जगह चाहते हैं, बेहतर विचार हो? –

+0

दुर्भाग्य से यह संभव नहीं है, मुझे यह सरणी दी गई है। –

+0

और वह क्यों है? –

उत्तर

6
foreach($start_array as &$arr) { 
    $arr["x"] = $arr['date']; 
    unset($arr['date']); 
    $arr['y'] = $arr['revenue']; 
    unset($arr['revenue']); 
} 
unset($arr); 

उपरोक्त कोड का प्रयास करें।

1

आप array_combine का उपयोग कर सकते हैं।

$new_arr = array_map(function ($val) { 
    return array_combine(array('x', 'y'), $val); 
}, $arr); 

The working demo.

या सिर्फ एक पाश ues:

foreach ($arr as &$el) { 
    $el = array_combine(array('x', 'y'), $el); 
} 
0
$new_keys = array('old1'=>'new1', 'old2'=>'new2', ...); 
foreach($array as $key=>$value) $newarray[$new_keys[$key]]=$value; 
+2

आपका उत्तर स्पष्ट होगा यदि इसमें केवल कोड से अधिक शामिल है। –

0

की सरणी के प्रमुख 'नाम' और नया नाम है पुराना नाम है 'NEW_NAME '

$myrow=array('name'=>'Sabuj'); 
$myrow['new_name']=$myrow['name']; 
unset($myrow['name']); 
print_r($myrow); 

Result: Array ([new_name] => 'Sabuj') 
संबंधित मुद्दे