【问题标题】:How to Sort JSON Products with PHP如何使用 PHP 对 JSON 产品进行排序
【发布时间】:2010-12-08 03:47:13
【问题描述】:

如何通过说“id:17 value:###”对这两种产品进行排序

{"id":"16","value":"L-AOC000"},{"id":"17","value":"6.00"},{"id":"18", "value":"10.00"},{"id":"19","value":"7.52"},{"id":"20","value":"4.75"},{"id": "21","值":"3.50"}

{"id":"16","value":"L-AOC001"},{"id":"17","value":"7.00"},{"id":"18", "value":"11.00"},{"id":"19","value":"6.52"},{"id":"20","value":"5.75"},{"id": "21","值":"4.50"}

【问题讨论】:

    标签: php json sorting


    【解决方案1】:

    您可以使用json_decode() 将json 对象转换为php 数组。从那里,您可以使用任何array sorting functions native to php

    【讨论】:

      【解决方案2】:

      首先,您需要将 Json 转换为 php 类型。

      $data = json_decode($the_json_string);

      那么你所拥有的实际上是一个对象数组。

      您可以使用 usort() 按属性对其进行排序(http://au2.php.net/usort)。

      似乎您想先按 id 进行测试,然后按值进行测试...

      function sort_by_id_then_value($a, $b)
      {
          if ($a->id == $b->id) {
              if ($a->value == $b->value) {
                  return 0;
              return ($a->value < $b->value ) ? -1 : 1;
          }
          return ($a->id < $b->id) ? -1 : 1;
      }
      
      usort($data, "sort_by_id_then_value");
      

      【讨论】:

        猜你喜欢
        • 2012-04-06
        • 2019-03-31
        • 2013-01-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-09
        相关资源
        最近更新 更多