按升序对数组的值进行分类

时间:2017-02-01 20:01:20

标签: php arrays simplexml

我希望按升序对表格的值进行分类,以便能够在变量$ distancecp中使用它们。 我的var_dump很好地找到了我的值,但我不能按升序对它们进行分类。

$select100=mysqli_query($conn,$select10);
while($asso = mysqli_fetch_assoc($select100)) {
    $distancecp1 = getDistance(''.$villeselect.', '.$cpselect.'',''.$asso['ville'].', '.$asso['codep'].'');
    $distancecp2 = array($distancecp1);
    var_dump($distancecp2);
    foreach($distancecp2 as $distancecp) {
    }
}

var_dump($distancecp2)的结果:

array (size=1)
  0 => 
    object(SimpleXMLElement)[8]
      public 0 => string '68526' (length=5)

array (size=1)
  0 => 
    object(SimpleXMLElement)[10]
      public 0 => string '71824' (length=5)

array (size=1)
  0 => 
    object(SimpleXMLElement)[7]
      public 0 => string '67536' (length=5)

array (size=1)
  0 => 
    object(SimpleXMLElement)[9]
      public 0 => string '33902' (length=5)

我试过了:

$select100=mysqli_query($conn,$select10);
while($asso = mysqli_fetch_assoc($select100)) {
$distancecp1 = getDistance(''.$villeselect.', '.$cpselect.'',''.$asso['ville'].', '.$asso['codep'].'');
$distancecp2 = array($distancecp1);
asort($distancecp2);
foreach($distancecp2 as $distancecp){
    echo ''.$distancecp.' ';
}
}

我的回声很好地回报了我的4个值,但没有按升序排列:(

1 个答案:

答案 0 :(得分:1)

仔细查看var_dump输出:它不是打印所有结果的列表,而是多次调用,每次都说“array(size = 1)”。那个“size = 1”是你的线索:你有一个列表中有一个东西,用array($something)创建。如果你对列表中的一个东西进行排序,你将得到相同的列表,其中包含相同的内容。

您需要做的是为整个循环创建一个数组,并将所有项添加到其中:

$results = array();
while ( ... ) {
    $distancecp1 = ...
    $results[] = $distancecp1;
}
var_dump($results);

然后: