[英]Sorting multidimensional array by key alphabetically
嘗試按屏幕名稱按此多維數組排序:
//Looping through this for each member of a group
unset($member_info);
$member_info->id = $member->id;
$member_info->screen_name = $member->screen_name;
$member_info->first_name = $member->first_name;
$member_info->last_name = $member->last_name;
$member_info->email = $member->email;
//Sort member_info by screen name
$member_array = sort_by_array_key($member_info,$member_info->screen_name,'ASC');
$member_list[] = $member_array;
排序功能:
function sort_by_array_key($array,$sort_key,$dir = 'ASC') {
usort($array, function($a,$b) use ($sort_key){
return strnatcasecmp($a["$sort_key"], $b["$sort_key"]);
});
if ( $dir == 'DESC' ) { return array_reverse($array); }
else { return $array; }
}
例如,即使我運行了sort函數,屏幕名稱當前仍是按此順序排列的:
newUser
Chris
Carlos
Jason
我可能在錯誤的時間應用了排序,但是在查看了其他類似示例后,我對此感到很麻煩,我們將不勝感激,謝謝!
首先,您要在此處對單個項目進行排序,您可能希望在其中對實際列表$ member_list進行排序。 另外,您正在嘗試對要初始化對象的數組進行排序。 初始化數組或對對象進行排序。
如果我假設您真的想使用數組,就像您暗示這個主題一樣,那么您可能正在嘗試這樣做:
<?php
$member_info = Array();
$member_info['id'] = '1';
$member_info['screen_name'] = 'Chris';
$member_info['first_name'] = '';
$member_info['last_name'] = '';
$member_info['email'] = '';
$member_list[] = $member_info;
$member_info = Array();
$member_info['id'] = '2';
$member_info['screen_name'] = 'Carlos';
$member_info['first_name'] = '';
$member_info['last_name'] = '';
$member_info['email'] = '';
$member_list[] = $member_info;
$member_info = Array();
$member_info['id'] = '3';
$member_info['screen_name'] = 'Jason';
$member_info['first_name'] = '';
$member_info['last_name'] = '';
$member_info['email'] = '';
$member_list[] = $member_info;
//Sort member_list by screen name
$member_list = sort_by_array_key($member_list,'screen_name','ASC');
function sort_by_array_key($array,$sort_key,$dir = 'ASC') {
usort($array, function($a,$b) use ($sort_key){
return strnatcasecmp($a["$sort_key"], $b["$sort_key"]);
});
if ( $dir == 'DESC' ) { return array_reverse($array); }
else { return $array; }
}
print_r($member_list);
/*
Array
(
[0] => Array
(
[id] => 2
[screen_name] => Carlos
[first_name] =>
[last_name] =>
[email] =>
)
[1] => Array
(
[id] => 1
[screen_name] => Chris
[first_name] =>
[last_name] =>
[email] =>
)
[2] => Array
(
[id] => 3
[screen_name] => Jason
[first_name] =>
[last_name] =>
[email] =>
)
)
*/
ksort-“按鍵對數組進行排序,並保持數據關聯的鍵。這主要用於關聯數組。”
見手冊
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.