У меня есть массив следующим образом:
Array ( [id] => Array ( [0] => 3321 [1] => 3318 [2] => 3320 [3] => 3319 [4] => 3324 [5] => 3322 ) [name] => Array ( [0] => Carla Taku [1] => Honey-Pearl Te Moni [2] => Monique Koroua [3] => Summer Hellier [4] => Wayne Kahukiwa [5] => Natasha Merito ) [courses] => Array ( [0] => 2 [1] => 1 [2] => 1 [3] => 1 [4] => 1 [5] => 1 ) )
Я хочу отсортировать это по «имени», но я не могу понять, как это сделать? Я не могу сделать его многомерным из-за другого кода. Я пробовал usort, ksort, array_sort, array_multisort, но я не достаточно опыт, чтобы сортировать это. У кого-нибудь есть предложения? Пожалуйста, будьте осторожны, я новичок в этом. Благодарю. 🙂
Я думаю, что array_multisort
– это то, что вам нужно:
array_multisort($array['name'], $array['id'], $array['courses']);
Вчера я наткнулся на сортировку. Надеюсь, это может дать вам некоторый намек.
function SortByName($a,$b){ return strcasecmp($a['name'], $b['name']); } usort($YourArray, 'SortByName');
Извините, что не использовал ваш конкретный массив, я стал ленивым, lol. Однако это должно сработать для вас, как пирог.
$ar = array( array("10", 11, 100, 100, "a"), array(1, 2, "2", 3, 1) ); $temp = $ar[1]; $count = 0; asort($ar[0]); foreach ($ar[0] as $key => $value) { $ar[1][$count] = $temp[$key]; $count++; } print_r($ar);