作者:手机用户2602916141 | 来源:互联网 | 2022-12-03 19:52
我正在使用以下代码来计算locations
表中的数量:
$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));
这给了我以下数组:
Array
(
[CANADA] => 106
[USA] => 547
[MEXICO] => 93
[GREAT_BRITAIN] => 111
[EASTERN_EUROPE] => 227
[RUSSIA] => 405
[CHINA] => 341
[INDIA] => 253
)
我试图'提取'数组值并将它们放在一个变量中,但似乎没有任何效果:
$canada = $aloc_list[0];
$canada = $aloc_list['CANADA'];
$canada = $aloc_list[0]['CANADA'];
$canada = $aloc_list[0];
我想最终得到一个名为$canada
等于106的变量,一个名为$usa
等于547 的变量,等等.
我该如何做到这一点?
1> Cid..:
如果您不想更改查询,可以存储结果array_count_values($aloc_list)
并使用它来提取数据.您可以使用变量变量生成动态变量,但我不建议这样做.您可能希望在使用之前检查变量是否存在.(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...
或者您可以使用提取功能来实现这一目标
extract($aloc_list_count);
使用变量变量的好主意,但你应该对它应用`strtolower()`,OP表示他们希望变量是小写的.