我有几个数组如下:
$number1 = array('A', 0.42);
$number2 = array('B', 0.44);
$number3 = array('C', 0.41);
$number4 = array('D', 0.43);
我想显示这样的结果:
0.41
0.42
0.43
0.44
如何显示这样的结果?谢谢 :)
如果你这样做:
echo $number3[1], "\n";
echo $number1[1], "\n";
echo $number4[1], "\n";
echo $number2[1], "\n";
你会得到
0.41
0.42
0.43
0.44
但是如果你想学习一些关于排序的知识,你应该阅读手册。
您使用数据和数组的方式是错误的。如果明天你还有 500 个数字要排序怎么办?
您应该有一个包含所有值的数组。
<?
$data = array(
"A" => 0.45,
"B" => 0.43,
"C" => 0.41,
"D" => 0.42
);
asort($data);
foreach ($data as $key => $val) {
echo "$key = $val\n";
}
?>
应该打印类似的东西
C = 0.41
D = 0.42
B = 0.43
A = 0.45
就我个人而言,我会将该代码压缩到一个数组中,这将允许一个很好的 for / foreach 循环和排序:
$numbers = array(
'A' => 0.42,
'B' => 0.44,
'C' => 0.41,
'D' => 0.43
);
asort($numbers);
foreach ($numbers as $number)
{
echo $number . '<br />';
}
您无需重新制作阵列。您可以使用双精度$$
。这将不会打印变量,但会尝试访问存储在值中的变量。
像这样:
$number1 = array('A', 0.42);
$number2 = array('B', 0.44);
$number3 = array('C', 0.41);
$number4 = array('D', 0.43);
$k = 1;
$name = 'number' . $k;
while ( isset($$name) )
{
$tmp = $$name;
echo $tmp[1] . '<br/>';
$k++;
$name = 'number' . $k;
}