[英]Sorting Multidimensional Array by the Values
I have the following array. 我有以下数组。
Array (
[0] => Array(
[vendorid] => 36
[vendorname] => Nothin' But A Muffin
[vendorfriendlyname] => nothin-but-a-muffin
)
[1] => Array(
[vendorid] => 52
[vendorname] => Montalto Olive Grove
[vendorfriendlyname] => montalto-olive-grove
)
[2] => Array(
[vendorid] => 44
[vendorname] => Kuki Kids
[vendorfriendlyname] => kuki-kids
)
[3] => Array(
[vendorid] => 47
[vendorname] => pasApas
[vendorfriendlyname] => pasapas
)
[4] => Array(
[vendorid] => 89
[vendorname] => Organic Family
[vendorfriendlyname] => organic-family
)
)
I need to trasform the above array into the following 我需要将上面的数组转换成以下内容
Array (
[0] => Array(
[vendorid] => 44
[vendorname] => Kuki Kids
[vendorfriendlyname] => kuki-kids
)
[1] => Array(
[vendorid] => 52
[vendorname] => Montalto Olive Grove
[vendorfriendlyname] => montalto-olive-grove
)
[2] => Array(
[vendorid] => 36
[vendorname] => Nothin' But A Muffin
[vendorfriendlyname] => nothin-but-a-muffin
)
[3] => Array(
[vendorid] => 89
[vendorname] => Organic Family
[vendorfriendlyname] => organic-family
)
[4] => Array(
[vendorid] => 47
[vendorname] => pasApas
[vendorfriendlyname] => pasapas
)
)
I have used array_multisort() but it didn't work 我使用了array_multisort()但它没有用
Is it possible to sort ? 有可能排序吗?
Try this one : assuming you have array in $rows 试试这个:假设你有$行数组
function cmp($a, $b)
{
return strcmp($a["vendorname"], $b["vendorname"]);
}
$array = $rows;
usort($array, "cmp");
while (list($key, $value) = each($array)) {
$new[] =$value ;
}
echo "<pre>";
print_r($new);
While as noted in a comment, the most efficient method in this case is to sort in the database query, here's an example of how you'd do it with array_multisort
, which is a lot more efficient than usort
: 虽然如评论中所述,在这种情况下最有效的方法是对数据库查询进行排序,这是一个如何使用
array_multisort
进行排序的示例,这比使用usort
更有效:
$rows = $vendors = array();
while ($row = mysql_fetch_assoc($res)) {
$vendors[] = $row['vendorname'];
$rows[] = $row;
}
array_multisort($rows, $vendors, SORT_ASC);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.