2

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

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"}

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

4

3 に答える 3

3

クエリを表示します。たとえば、次のクエリを実行している場合:

SELECT class_id, class FROM table;

これに変更します:

SELECT class_id AS new_id, class AS new_class FROM table;

PHP内で余分な作業を行う必要がないため、クエリで変更するのが最善の方法ですが、もちろんPHPで修正することもできます。

// where $resultset is your original results..
foreach ($resultset as &$result) {
    $result_ = array('new_id' => $result['class_id'], 'new_class' => $result['class']);
    $result = $result_;
}

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

于 2011-07-21T07:32:33.357 に答える
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);
于 2011-07-21T07:46:18.573 に答える
0

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

于 2011-07-21T07:34:13.140 に答える