php – Changing the keys of the array returned by mysqli_result

Question:

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

If I do this research:

"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't use alias in search phrases.

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

Any suggestion?

Answer:

Based on this SOen answer 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 told 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

Scroll to Top