정렬 사용자 정의
예를 들어 문자열에 포함된 숫자로 정렬하거나 연상수조의 2차원 값으로 정렬하려면 스스로 알고리즘을 만들어야 한다.
다음은 PHP 초보자 학습회의 공개 채팅에 문제가 있었고, 좋은 샘플이기 때문에 참고로 해봤습니다.
문제.
'수치가 포함된 문자열'의 수치를 토대로 오름차순으로 정렬하려 했으나 예상한 결과를 얻지 못해 곤란했다.
sort () 를 사용할 때 알파벳 순서대로 정렬합니다.
누가 나에게 알려줄 수 있습니까?
대답하다.
<?php
// ...
error_reporting(E_ALL);
// ...
$array = [
'test1',
'sio520',
'mirin1000',
'satou283',
'shoyu120',
'hoge',
];
// ...
uasort($array, function($a, $b){
// ...
$a1 = $b1 = $match = null;
// ...
if( preg_match('/(\d+)/', $a, $match) ){
$a1 = $match[1];
}
// ...
if( preg_match('/(\d+)/', $b, $match) ){
$b1 = $match[1];
}
// ...
if( $a1 > $b1 ){
return 1;
}else if( $a1 < $b1 ){
return -1;
}
// ...
return 0;
});
// ...
foreach( $array as $var ){
echo $var . '<br/>';
}
Reference
이 문제에 관하여(정렬 사용자 정의), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/phpbeginners/articles/f696b1a3d7b49c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)