【问题标题】:Sort php associative array [duplicate]对php关联数组进行排序[重复]
【发布时间】:2014-05-22 09:19:36
【问题描述】:

我正在尝试按英里对数组进行排序。

$i = 0;
foreach($results as $key => $value)
{
    echo $results['miles'][$i] . "<br />";
    echo $results['postcode'][$i] . "<br />";
    echo $results['id'][$i] . "<br />";
    echo $results['description'][$i] . "<br />";
    echo $results['title'][$i] . "<br />";
    echo $results['thumbnail'][$i] . "<br />";
    $i++;
}

如您所见,我在这里有 6 个不同的键。我想按升序按 $results['miles'] 排序所有内容。

这是我的数组结构:

Array ( [miles] => Array ( [0] => 0 [1] => 0 [2] => 14 [3] => 8 [4] => 8 [5] => 0 [6] => 8 [7] => 14 ) [title] => Array ( [0] => Stunning 1 Bedroom Apartment With Concierge [1] => Big Double Inc Bills+ Balcony+Free Parking [2] => Large, Sunny Flat In Willesden [3] => Brewhouse Yard EC1V [4] => Stunning 2 Double Bed Flat - City [5] => Room To Let £575 Pm Bills Included [6] => All Bills Inclusive | Gorgeous 1 Bed In The City [7] => Large Double Room In Zone 2 (Kensal Green 2 Mins) ) [id] => Array ( [0] => 187 [1] => 176 [2] => 186 [3] => 178 [4] => 179 [5] => 177 [6] => 183 [7] => 182 ) [thumbnail] => Array ( [0] => [1] => [2] => [3] => [4] => [5] => [6] => [7] => ) [postcode] => Array ( [0] => IG11 [1] => ig11 [2] => NW10 [3] => EC1 [4] => ec1 [5] => ig11 [6] => ec1 [7] => NW10 ) )

任何帮助将不胜感激!

【问题讨论】:

标签: php arrays


【解决方案1】:

如果可以,最好的方法是在数据进入您的脚本之前对其进行排序(如果它来自 SQL,那么就在那里排序)。

如果您需要在 PHP 中进行,尽管您可以使用 uasort 函数,它允许您定义自己的比较:

function compareMiles($a, $b) {
    if ($a['miles'] == $b['miles']) {
        return 0;
    }
    return ($a['miles'] < $b['miles']) ? -1 : 1;
}

uasort($results, 'compareMiles');

【讨论】:

    【解决方案2】:

    您可以使用usort()函数对其进行排序。

    【讨论】:

    • 请用有用的例子详细说明。
    【解决方案3】:

    使用asort()通过维护索引关联对数组进行排序。

    请参阅此link 了解详细信息和示例

    【讨论】:

      猜你喜欢
      • 2010-10-21
      • 1970-01-01
      • 1970-01-01
      • 2011-06-01
      • 2016-11-02
      • 1970-01-01
      • 2013-04-23
      • 2013-05-20
      • 1970-01-01
      相关资源
      最近更新 更多