Change the array keys returned by mysqli_result

3

I need to change the keys of a result obtained by mysqli_result->fetch_assoc()

If I do this search:

"SELECT exemplo.nome, exemplo.apelido, exemplo.idade FROM exemplo WHERE exemplo.id=1"

I get this result

$result["nome"]= "António";
$result["apelido"] = "Silva";
$result["idade"] = "30";

and would like to receive or transform into:

$result["exemplo.nome"]= "António";
$result["exemplo.apelido"] = "Silva";
$result["exemplo.idade"] = "30";

I can not use aliases in the search phrase

"SELECT exemplo.nome as exemplo.nome , exemplo.apelido as exemplo.apelido, exemplo.idade  as exemplo.idade FROM exemplo WHERE exemplo.id=1";

Any suggestions?

    
asked by anonymous 09.03.2015 / 11:40

1 answer

1

Based on this response from SOen you can rename the array keys with the prefix using array_map , the most recommended would be to use an alias as it is not possible, the other option would be to create a view as said by gmsantos.

$arr_entrada = array(
            array('nome'=>'joão', 'apelido' => 'j ', 'idade' => '20'),
            array('nome'=>'mario','apelido' => 'm', 'idade' => '28'));

echo'<pre>';
print_r($arr_entrada);


$arr_saida = array_map(function($input) {
    return array(
        'exemplo.nome' => $input['nome'],
        'exemplo.apelido' => $input['apelido'],
        'exemplo.idade' => $input['idade']
    );
}, $arr_entrada);

echo'<pre>';
print_r($arr_saida);

Example

    
09.03.2015 / 13:08