[英]How to extract part of the name of a variable as a string in PHP?
我在PHP
有以下代碼:
$groupA = Array($russiapoints, $arabiapoints, $egyptpoints, $uruguaypoints);
rsort($groupA);//sort
$Awinner = $groupA[0];
$Arunner = $groupA[1];
我可以在第2行和第3行之間插入一些內容,以便從數組中提取變量名並將它們顯示在單獨的數組中嗎?
要簡要指出一下,我以前對PHP的了解很少,所以請不要對我的知識做任何假設。
如所寫,您的數組將不包含變量的原始名稱,僅包含它們的值。
您將需要顯式跟蹤該信息,例如作為數組鍵。 對於一個持久的硬編碼集,可能就足夠了:
$groupA = [
'russia' => $russiapoints,
'arabia' => $arabiapoints,
'egypt' => $egyptpoints,
'uruguay' => $uruguaypoints,
];
// if you want to retrieve just keys later
$keys = array_keys( $groupA );
我認為您需要為A組球隊維護記分卡,然后在列表中找到獲勝者和亞軍。 為此,我建議您將記分卡記錄在以下結構中。
$groupA = [
[
'name' => 'Russia',
'points' => 12
],
[
'name' => 'China',
'points' => 11,
],
[
'name' => 'France',
'points' => 20,
],
[
'name' => 'USA',
'points' => 10,
]
];
現在,我們可以處理此數組以找出獲勝者(得分最高的團隊)和亞軍(得分第二高的團隊)。 為此,我們將需要根據得分以相反的順序對數組進行排序。 我添加了一個功能來做到這一點。
function comparePoints($a, $b)
{
if ($a['points'] == $b['points']) {
return 0;
}
return $a['points'] < $b['points'] ? 1 : -1;
}
並使用此功能對我的數組進行排序。
usort($groupA, 'comparePoints');
現在,陣列將具有最高分的團隊排在第一位。 我會找到獲勝者,第一名和第二名,如下。
$winner = array_shift($groupA);// first one in the array
$firstRunnerUp = array_shift($groupA); // second one in the array
$secondRunnerUp = array_shift($groupA); // third one in the array
現在只需嘗試print_r($winner);
。 輸出將是
Array
(
[name] => France
[points] => 20
)
注意:如果兩支球隊的得分相同,我沒有考慮過這種情況。 您將需要找到該問題的解決方案。
閱讀有關uasort的更多信息
閱讀有關array_shift的更多信息
$groupA = compact('russiapoints', 'arabiapoints', 'egyptpoints', 'uruguaypoints');
arsort($groupA);//sort
$Awinner = key($groupA);next($groupA);
$Arunner = key($groupA);next($groupA);
等等。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.