php - 將 array 值轉換為變數

  显示原文与译文双语对照的内容
74 3

我使用下面的代碼來計算表中 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:

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.

我該如何完成這個?

时间:原作者:0个回答

124 0

如果你不想更改查詢,可以存儲 array_count_values($aloc_list)的結果,並使用它來提取數據。

$aloc_list_count = array_count_values($aloc_list);
foreach ($aloc_list_count AS $key => $value)
 $$key = $value;
原作者:
148 5

你試圖從原始 $aloc_list array 中選擇上述值,但它們並不直接存在於這裡。它們是調用 array_count_values($aloc_list)的結果- 這會產生一個新的array,而你需要從這個結果中讀取。

例如:

$counts = array_count_values($aloc_list);
echo $counts['CANADA']; 
原作者:
128 4

在命令行上:

print_r(array_count_values($aloc_list));

試試這個:

$mergeLocations = array_count_values($aloc_list);
var_dump($mergeLocations['CANADA']);
var_dump($mergeLocations['USA'])

另外,使用 mysql GROUP BY 函數來計算位置會更加聰明:

SELECT location, count(*) as total FROM table GROUP BY location ORDER BY total DESC
原作者:
98 2

你正在將 array 從 array_count_values 返回到print_r函數。試試這個

 $test = array_print_values($aloc_list);
 echo $test['CANADA']; 
原作者:
...