根据单词中的数字对数组进行排序


sort array on number in word

我有一个空数组

$stack = array();

现在我想用form 中另一个文件的变量I posted中的值来填充它

$aV = $_POST['aValue'];
$aP = $_POST['aPercent'];
$bV = $_POST['bValue'];
$bP = $_POST['bPercent'];
$cV = $_POST['cValue'];
$cP = $_POST['cPercent'];
$dV = $_POST['dValue'];
$dP = $_POST['dPercent'];

在我得到要put的值之后,它们在stack数组中。最后我想call数组名称/值

 $stack[0].'<br />'.$stack[1].'<br />'.$stack[2].'<br />'.$stack[3];

问题是我无法弄清楚如何正确地将它们放入数组我试过像这个

$stackA = array();
$stackB = array();
$stackC = array();
$stackD = array();

$stackA[$aP] = $aV;
$stackB[$bP] = $bV;
$stackC[$cP] = $cV;
$stackD[$dP] = $dV;
$arr3 = $stackA + $stackB + $stackC + $stackD;

但问题是它替换了密钥(例如,$arr3= 'blue' => 24将变为[0] => 24,我需要得到[0] => [blue] => 24,所以当我调用$arr3[0]时,它会说blue 24,当[1] => [red] = 20时,我想要第一个([0]是最低的数字,在这种情况下是[red]),我尝试使用sort()函数。但它在name上排序,而在number 上不排序

试试这个:

//Put values in a stack with number as keys
$stack[$aV] = $aP; and so on for others.
//Sort based on keys.(eg: 24, 20 in your case)
$stack = ksort($stack, SORT_NUMERIC);
// iterate and push all of them into $arr3 in the format you need.
foreach($stack as $V => $P) {
  $arr3[] = array($V => $P);
}
print_r($arr3);