0

次のように、多次元配列の特定のキー値に基づいて配列を並べ替えようとしています

<?php
$country = array(
    array(
        'country' => 'India',
        'visits' => 22,
        'newVisits' => 16,
        'newVisitsPercent' => 72.7),
    array(
        'country' => 'USA',
        'visits' => 30,
        'newVisits' => 15,
        'newVisitsPercent' => 50),
    array(
        'country' => 'Japan',
        'visits' => 25,
        'newVisits' => 15,
        'newVisitsPercent' => 60));
?>

配列の「visits」キーの降順で配列を並べ替えたいです。

必要なアレイは

<?php
$country = array(
    array(
        'country' => 'USA',
        'visits' => 30,
        'newVisits' => 15,
        'newVisitsPercent' => 50),
    array(
        'country' => 'Japan',
        'visits' => 25,
        'newVisits' => 15,
        'newVisitsPercent' => 60),
    array(
        'country' => 'India',
        'visits' => 22,
        'newVisits' => 16,
        'newVisitsPercent' => 72.7));
?>

SOで検索しようとすると、すべての結果がキーの値に基づいて並べ替えられていました。どの関数を使用する必要があるか教えてください。

ksort、マルチソート関数を調べました

4

2 に答える 2

4

のドキュメントを見てくださいusort: http://www.php.net/manual/en/function.usort.php

于 2012-07-18T12:49:15.410 に答える
4

PHP には、これらのタイプの配列をソートできるusort ()という組み込み関数があります。

比較関数は次のようになります。

function mycmp($a, $b) {
  return intval($a['visits']) - intval($b['visits']);
}
于 2012-07-18T12:54:08.920 に答える