【发布时间】:2018-02-01 09:25:46
【问题描述】:
我有一个数组
[0] => ['name' => John, city => NY, street => WallStreet ..some anouther fields]
[1] => ['name' => Bill, city => FI, street => smstr.. some anouther fields]
[2] => ['name' => John, city => NY, street => WallStreet ..some anouther fields]
[3] => ['name' => Bill, city => FI, street => smstr ..some anouther fields]
[4] => ['name' => 4, city => 4, street => 4 ..some anouther fields]
我需要对其进行排序以使所有重复的名称城市和街道字段位于数组顶部或仅按顺序排列
我想要什么
[] => ['name' => John, city => NY, street => WallStreet..some anouther fields]
[] => ['name' => John, city => NY, street => WallStreet ..some anouther fields]
[] => ['name' => Bill, city => FI, street => smstr ..some anouther fields]
[] => ['name' => Bill, city => FI, street => smstr ..some anouther fields]
[] => ['name' => 4, city => 4, street => 4 ..some anouther fields]
我正在尝试使用 usort
usort($sorted, function($a, $b) {
if ($a['name'] == $b['name'] &&
$a['city'] == $b['city'] &&
$a['street'] == $b['street']
){
return 1;
}
else {
return -1;
}
});
但它不适用于 php 5.3 ,有人可以提出解决方案吗?
p/s 我正在使用 php 5.3 :(
【问题讨论】:
-
您想要的预期结果是什么?也将其粘贴到您的问题中
-
什么定义了重复?它必须是 name AND city AND street 的副本,还是其中任何一个的副本? “在数组的顶部还是按顺序”是什么意思?
-
请尝试包含一个稍微大一点的输入示例,以及您尝试获得的输出示例,并清楚地解释为什么应该是输出。
-
附加输入和想要的输出是重复匹配仅当名称和城市和街道相同@Don'tPanic
-
哇,真快!我不习惯那种对澄清请求的回应。
标签: php arrays multidimensional-array