Home > Software engineering >  How to loop mysql result inside an array
How to loop mysql result inside an array

Time:08-20

I have an array like this

$EN=array(
    "text1"=>"translation1",
    "text2"=>"translation2",
    "text3"=>"translation3",
    "text4"=>"translation4",
);

and this is my query

$result = "SELECT langVar, translation FROM lang WHERE langName = 'EN';";

$test= $conn->query($result);

The langVar column will retrieve text variables and the translation column is for translation words.

$EN=array(
  foreach ($test AS $row){
    $row['langVar']=>$row['$translation']
    }
 );

but it was a syntax error

Please, how can I do this the right way ?

CodePudding user response:

You can't put a loop inside an array literal.

Add to the array inside the loop, not the other way around:

$EN = [];
foreach ($test as $row) {
    $EN[$row['langVar']] = $row['translation'];
}

DEMO

CodePudding user response:

You don't need a loop. If you only want to fetch all rows into a multidimensional array indexed by one of its columns, you cause use fetch_all() and array_column().

$result = "SELECT langVar, translation FROM lang WHERE langName = 'EN'";
$EN = array_column($conn->query($result)->fetch_all(), 0, 1);
  • Related