-3

我有几个数组如下:

$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

如何显示这样的结果?谢谢 :)

4

4 回答 4

0

如果你这样做:

echo $number3[1], "\n";
echo $number1[1], "\n";
echo $number4[1], "\n";
echo $number2[1], "\n";

你会得到

0.41
0.42
0.43
0.44

但是如果你想学习一些关于排序的知识,你应该阅读手册

于 2012-11-30T08:23:32.417 回答
0

您使用数据和数组的方式是错误的。如果明天你还有 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
于 2012-11-30T08:26:54.387 回答
0

就我个人而言,我会将该代码压缩到一个数组中,这将允许一个很好的 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 />';
}
于 2012-11-30T08:27:01.050 回答
0

无需重新制作阵列。您可以使用双精度$$。这将不会打印变量,但会尝试访问存储在值中的变量。

像这样:

$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;
}
于 2012-11-30T08:37:43.833 回答