6

配列内のキーの名前を変更するにはどうすればよいですか?

$start_array という名前のこの配列から始めます。

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

「date」と「revenue」のキーを変更して、次の $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'] );
}
4

5 に答える 5

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

上記のコードを試してください。

于 2012-09-24T23:50:42.903 に答える
1

を使用できますarray_combine

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

動作デモ。

または単にループを使用します:

foreach ($arr as &$el) {
  $el = array_combine(array('x', 'y'), $el);
}
于 2012-09-25T02:50:35.227 に答える
0
$new_keys = array( 'old1'=>'new1', 'old2'=>'new2', ... );
foreach( $array as $key=>$value ) $newarray[$new_keys[$key]]=$value; 
于 2012-09-25T02:55:53.693 に答える