2011-07-21 3 views
2

Exemple: mon jeu courant de résultat:Comment puis-je modifier les noms de colonnes dans un jeu de résultats et de créer un nouveau jeu de résultats en PHP avec les noms de colonnes modifiés

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

Je veux un nouveau jeu de résultats :

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

Je ne veux pas que cela affecte les noms de colonnes dans ma base de données. seulement le jeu de résultats.

+0

Le résultat est un tableau changeant le tableau ne sera pas une incidence sur votre base de données. – Sinan

Répondre

1

essayer cette

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

Montrez-nous votre requête .. Si vous faites, par exemple, la requête suivante:

SELECT class_id, class FROM table; 

Modifier à ceci:

SELECT class_id AS new_id, class AS new_class FROM table; 

Changement dans la requête est mains- la meilleure façon de le faire, car vous n'avez pas à faire de travail supplémentaire au sein de PHP, mais vous pouvez également les modifier en PHP, bien sûr.

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

Notez qu'aucune de ces méthodes n'affecte les colonnes de votre base de données. La seule façon de le faire serait via une instruction ALTER|MODIFY TABLE.

+0

quand je var_dump mon nouveau jeu de résultats, j'obtiens seulement {["new_id"] => string (1) "3" ["new_class"] => string (3) "3rd"}. Mais {["new_id"] => string (1) "1" ["new_class"] => string (3) "1st"} {["new_id"] => chaîne (1) "2" [" new_class "] => string (3)" 2nd "} sont manquants ..! –

+0

+1 pour l'utilisation de l'alias :) – diEcho

+0

@ Rahul_2289 Avec quelle méthode? Utilisez la variante de requête. –

0

Dans le cycle foreach. Créez un nouveau tableau avec les colonnes nécessaires à partir du jeu de résultats existant.

Questions connexes