【问题标题】:Sort alphabetically an array taken dynamically按字母顺序对动态获取的数组进行排序
【发布时间】:2012-04-04 03:48:59
【问题描述】:

我有一个从 json 获得的数组,我想按字母顺序对其元素进行排序。

我有一个返回数组结果的函数:

      $cities = get_cities();

我都试过了:

  asort($cities['cities']);
  foreach($cities['cities'] as $rc) { blah blah

  foreach(asort($cities['cities']) as $rc) { blah blah

none 没有进行排序。

知道我哪里错了吗? 谢谢!

【问题讨论】:

  • 为 print_r($cities); 添加输出
  • 这是一个关联数组吗?手册页说 asort 可用于关联数组。 php.net/manual/en/function.asort.php
  • 抱歉 - 输出是:{"cities":[{"name":"Bucure\u015fti","slug":"bucuresti","latitude":"44.437711","longitude" :"26.097367"},{"name":"Cluj Napoca","slug":"cluj","latitude":"46.716082","longitude":"23.471831"},{"name":"Bra\u015fov ","slug":"brasov","latitude":"45.655651","longitude":"25.610800"},{"name":"Timi\u015foara","slug":"timisoara","latitude": "45.759722","经度":"21.230000"},{"name":"Constan\u0163a","slug":"constanta","latitude":"44.173333","longitude":"28.638333"},{ "名称":"Ia\u015fi","slug":"iasi","纬度":"47.156944","经度":"27.590278"},

标签: php arrays sorting asort


【解决方案1】:

在不知道您的 $cities 数组是什么样子的情况下,很难说出问题所在。

您是否尝试过仅使用常规的 PHP 排序功能?即

sort( $cities );

【讨论】:

    【解决方案2】:

    按城市名称排序可能看起来像

    $c = $cities['cities'];
    usort($c, function($cityA, $cityB) { 
        return strcmp($cityA['name'], $cityB['name']);
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-12
      • 1970-01-01
      • 2019-06-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多