2011-07-21 5 views
2

例でPHPに新しい結果セットを作成します:私はのように設定新しい結果が欲しいどのように私は、結果セット内の列名を変更し、変更された列名

array(7) {[0]=>array(2) 

{ ["class_id"]=>string(1) "1"["class"]=>string(3)"1st"} 

{ ["class_id"]=>string(1) "2"["class"]=>string(3)"2nd"} 

{ ["class_id"]=>string(1) "3"["class"]=>string(3)"3rd"} 

私の現在の結果セットを:

array(7) {[0]=>array(2) 

{ ["new_id"]=>string(1) "1"["new_class"]=>string(3)"1st"} 

{ ["new_id"]=>string(1) "2"["new_class"]=>string(3)"2nd"} 

{ ["new_id"]=>string(1) "3"["new_class"]=>string(3)"3rd"} 

私のデータベースの列名に影響を与えたくありません。結果セットのみ。これに

SELECT class_id, class FROM table; 

変更、それを::

SELECT class_id AS new_id, class AS new_class FROM table; 

クエリでそれを変更するハンズある

+0

を試してみてください。 – Sinan

答えて

1

は結果が配列を変更する配列は、データベースには影響しませんです。この

function rename_key(&$array, $oldkey, $newkey) { 
// remember here we send value by reference using `&` 
    if(array_key_exists($oldkey,$array)) 
    { 
     $array[$newkey] = &$array[$oldkey]; 
     unset($array[$oldkey]); 
    } 
    return $array; 
} 

foreach($input as $k) 
{ 
    rename_key($k, 'class_id', 'new_id'); 
    rename_key($k, 'class', 'new_class'); 
    $output[]=$k; 
} 
echo "<pre>"; 
print_r ($output); 
3

は、あなたがやっている場合は、たとえば、次のクエリが...私達にあなたのクエリを表示しますあなたがPHPで余分な作業をする必要がないので、それを行うための最善の方法を落としますが、もちろんPHPでそれらを修正することもできます。

いずれの方法もデータベースの列に影響しないことに注意してください。これを行う唯一の方法は、ALTER|MODIFY TABLEステートメントを使用することです。

+0

私は新しい結果セットをvar_dumpすると、{["new_id"] => string(1) "3" ["new_class"] => string(3) "3rd"}しか得られません。 "[" "new_id"] =>文字列(1) "2" ["new_id"] =>文字列(1) new_class "] => string(3)" 2nd "} が見つかりません..! –

+0

エイリアスを使用して+1: – diEcho

+0

@ Rahul_2289どの方法で?クエリバリアントを使用します。 –

0

foreachサイクルで。既存の結果セットから列を必要とする新しい配列を作成します。

関連する問題