I'm using the following piece of code to count the number of locations from a table:
$result = mysqli_query($conn,"SELECT location FROM table ORDER BY location");
$aloc_list = array();
while ($row = mysqli_fetch_array($result))
{$aloc_list[] = $row['location'];
}
print_r(array_count_values($aloc_list));
Which gives me the following array:
Array
(
[CANADA] => 106
[USA] => 547
[MEXICO] => 93
[GREAT_BRITAIN] => 111
[EASTERN_EUROPE] => 227
[RUSSIA] => 405
[CHINA] => 341
[INDIA] => 253
)
I have tried to 'extract' the array values and put them in a variable but nothing seems to work:
$canada = $aloc_list[0];
$canada = $aloc_list['CANADA'];
$canada = $aloc_list[0]['CANADA'];
$canada = $aloc_list[0];
I want to end up with a variable called $canada equal to 106, a variable called $usa equal to 547, etc.
How do I accomplish this?
If you don't want to change your query, you can store the result of array_count_values($aloc_list) and use it to extract the datas. You can use variables variables to generate dynamically variables, but I don't recommend this. You might want to check if variable exists before using it. (isset())
$aloc_list_count = array_count_values($aloc_list);
var_dump($aloc_list_count);
/*
Outputs
array (size=8)
'CANADA' => int 106
'USA' => int 547
'MEXICO' => int 93
'GREAT_BRITAIN' => int 111
'EASTERN_EUROPE' => int 227
'RUSSIA' => int 405
'CHINA' => int 341
'INDIA' => int 253
*/
foreach ($aloc_list_count AS $key => $value)
${strtolower($key)} = $value;
echo $canada; //106
echo $usa; //547
echo $france; //Notice: Undefined variable: france in...
Or you can use extract function to achieve that
extract($aloc_list_count);
You are trying to select the mentioned values from the original $aloc_list array - but they don't directly exist in there. They're the result of the call to array_count_values($aloc_list) - this produces a new array, and you need to read from that instead.
For example:
$counts = array_count_values($aloc_list);
$canada = $counts['CANADA'];
echo $canada;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With