订购多维数组我有这样一个PHP由三个或多个值
array(
[0] => Array (
[fullAddress] => 2482 Midvale St,Kettering, OH, 45420
[bedrooms] => 3
[bathrooms] => 1.0
[sqft] => 1548
[yearBuilt] => 1955
[lastSoldDate] => 12/09/2015
[lastSoldPrice] => 87,000
[distance] => 0.59
)
[1] => Array (
[fullAddress] => 2828 Vale Dr, Dayton, OH, 45420
[bedrooms] => 3
[bathrooms] => 1.5
[sqft] => 1356
[yearBuilt] => 1956
[lastSoldDate] => 10/09/2015
[lastSoldPrice] => 117,500
[distance] => 0.38
)
[2] => Array (
[fullAddress] => 2812 Vale Dr, Dayton, OH, 45420
[bedrooms] => 4
[bathrooms] => 2.0
[sqft] => 1248
[yearBuilt] => 1955
[lastSoldDate] => 05/13/2015
[lastSoldPrice] => 114,900
[distance] => 0.33
)
)
数组我需要订购:距离递增,lastSoldPrice递减(最近的日期为当前日期),并在最后一个订单由相同的卧室,浴室和平方英尺20%以内。比较主要属性像这样的:
Array (
[fullAddress] => 2400 Ghent Ave, Dayton, OH 45420
[bedrooms] => 3
[bathrooms] => 1.0
[sqft] => 984
[yearBuilt] => 1956
[lastSoldDate] => 05/06/2014
[lastSoldPrice] => 74,763
)
所以前两个订单准备和IM能够通过距离的顺序并使用usort()lastsoldprice,但我还没有拿到最后一个尚未“因为我不知道如何与另一个数组(主要属性)进行比较。
这是我使用的是usort
function sort($a, $b) {
if ($a['distance']==$b['distance']) {
if ($a['lastSoldDate']==$b['lastSoldDate']) {
return 0;
} else {
return ($a['lastSoldDate']<$b['lastSoldDate']) ? 1 : -1;
}
} else {
return ($a['distance']>$b['distance']) ? 1 : -1;
}
}
usort($propertydata, 'sort');
的代码,我希望有人能够帮助我。谢谢
你是什么意思 '20%+或内 - '?如果不符合该范围的房屋根本无法显示?或结束在一起? –
我忘了添加该信息,因此我编辑了该问题。相同的卧室,浴室和平方英尺在20%以内+或 - 与搜索地址谁拥有相同的数据。这将是最后的优先排序。 –
嗯,我不确定这回答我的问题。也许你可以在你的问题中添加'搜索到的具有相同数据的地址',以及你期望结果的顺序? –