php排序用于多维数组和价值'价格'?

时间:2010-11-19 21:45:16

标签: php arrays sorting

下面是API调用的结果类型示例。我想按价格对这些结果进行排序并保留数组的结构。我已经尝试了手册中的大量示例以及我发现的代码,但似乎无法获得正确的组合以使其工作。我真的很感激任何帮助。

array(7) { 
  ["errors"]=> array(0) { } 
  ["warnings"]=> array(1) { 
    [0]=> array(2) { 
      ["code"]=> string(26) "api_class_update_available" 
      ["msg"]=> string(58) "The Api class is now available in version 1.6" 
    } 
  } 
  ["data"]=> array(4) { 
    [0]=> array(3) { 
      ["url"]=> string(7) "http://" 
      ["keyword"]=> string(7) "keyword1"  
      ["price"]=> string(5) "23.99" 
    } 
    [1]=> array(3) { 
      ["url"]=> string(7) "http://" 
      ["keyword"]=> string(7) "keyword2"  
      ["price"]=> string(5) "19.99" 
    }  
    [2]=> array(3) { 
      ["url"]=> string(7) "http://" 
      ["keyword"]=> string(7) "keyword3"  
      ["price"]=> string(5) "29.99" 
    } 
    [3]=> array(3) { 
      ["url"]=> string(7) "http://" 
      ["keyword"]=> string(7) "keyword4"  
      ["price"]=> string(5) "9.99" 
    } 
  }
  ["countryCode"] => string(2) "US" 
  ["page"] => int(1) 
  ["limit"]=> int(4) 
} 

1 个答案:

答案 0 :(得分:3)

您可以使用usort()$array['data']属性

进行排序
function priceCompare($a, $b) { return $a['price'] - $b['price']; }
usort($results['data'], 'priceCompare');

或者在PHP 5.3中,您可以使用闭包,因此您不需要定义函数:

usort($results['data'], function($a, $b) { return $a['price'] - $b['price']; });