1

重複の可能性:
php sort($ array)が機能しない-ソートされた配列の代わりに1を返す

配列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);
4

2 に答える 2

5

sort関数はブール値を返します。

したがって、$returnこのブール値を に割り当てることにより、並べ替えられた後のコンテンツを効果的に上書きしてい$returnます。

単純に

sort($return);
于 2013-01-25T16:22:18.723 に答える
5

私が正しく理解していれば、値の昇順で配列をソートしたいですか? これが正しい場合はasort()、配列を値でソートしますが、インデックス/キーはそのままにします

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

並べ替え関数はブール値を返すため、それらを変数に割り当てず、配列で関数を呼び出すだけであることに注意してください。

asort($array);
于 2013-01-25T16:24:44.773 に答える