[英]how to sort an array by the value outputted by similar_text function php
[英]How can I sort the outputted array into groups
我想讓它像這樣:
Imran Omer
Imran Omer
sumair
sumair
sumair
sumair
sumair
wrewr
wrewr
wrewr
wrewr
wrewr
我該如何排序?
這是我正在使用的代碼;
if (!in_array($a['sid'],$leave_sids))
{
$struck_off_list_bit .= '
<tr>
<td>'.$a['sid'].'</td>
<td><a href="school_id.php?action=preview_id_card&sid='.$a['sid'].'">'.$a['student_name'].'</a></td>
<td>'.$date.'</td>
<td>'.$student_class.'</td>
<td style="background: #'.$bg_color.'">'.$leave_submitted.'</td>
</tr>
';
}
似乎您在尋找usort()
。
首先定義一個函數,例如
function sortByStudent($a, $b) {
return $a['student_name'] - $b['student_name'];
}
然后,在$a
數組上調用它:
usort($a, 'sortByStudent');
您需要使用array_multisort()函數,您的代碼應類似於以下代碼:
<?php
$students = array(
array('sid' => '38', 'student_name' => 'wrewr'),
array('sid' => '2', 'student_name' => 'Imran Omer'),
array('sid' => '36', 'student_name' => 'sumair'),
array('sid' => '2', 'student_name' => 'Imran Omer'),
array('sid' => '36', 'student_name' => 'sumair'),
array('sid' => '38', 'student_name' => 'wrewr'),
array('sid' => '36', 'student_name' => 'sumair'),
);
$new_array = array();
foreach ($students as $key => $row) {
$new_array[$key] = $row['student_name'];
}
array_multisort($new_array, SORT_ASC, $students);
print_r($students);
?>
另外一個選項
function array_sort($arr, $key, $type = 'asc')
{
$keys = $new_array = array();
foreach ($arr as $k => $v) {
$keys[$k] = $v[$key];
}
if ($type == 'asc') {
asort($keys);
} else {
arsort($keys);
}
reset($keys);
foreach ($keys as $k => $v) {
$new_array[$k] = $arr[$k];
}
return $new_array;
}
用法array_sort($a,'student_name')
您可以在查詢中使用GROUP BY
子句。 它將自動將所有結果分組
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.