无法使排序数组工作

时间:2013-01-25 16:19:33

标签: php arrays sorting

  

可能重复:
  php sort($array) not working - returning 1 instead of sorted array

我很难让数组sort()函数按预期工作,我也尝试过ksort()等:::

此工作正常

foreach( (array) $query as $post ) {
   $VP = ( ( empty($PMD['vehicle_price'][0]) ) ?  $VP = 'On Request' : $VP = $PMD['vehicle_price'][0] ); 
      $vehicle_p[] = $VP;
}

$return = array_count_values($vehicle_p); //Key Value Unique ( count )

foreach($return as $value => $count) {
   <li><span class="key">' . $value . '</span> (' . $count . ')</li>
}

最终结果: 480000(1),80000(2),120400(1)

我现在要对此进行排序,以便80000(2)在列表中排在第一位,然后是120400(1),然后是480000(1)

只要我添加任何 sort()功能,我就会得到一个输出1

我无法让这项工作得到任何帮助,我们将不胜感激

$return = array_count_values($vehicle_p); //Key Value Unique ( count )
$return = sort($return);
print_r($return);

2 个答案:

答案 0 :(得分:4)

sort函数返回一个布尔值。

因此,通过将此布尔值分配给$return,您有效地覆盖了$return的内容。

简单地做

sort($return);

答案 1 :(得分:3)

如果我理解正确,你想通过提升值对数组进行排序?如果这是正确的请查看asort(),它将按值对数组进行排序,但保持索引/键完整

http://php.net/manual/en/function.asort.php

请记住,sort函数返回一个布尔值,所以不要将它们分配给变量,只需调用数组上的函数。

asort($array);