본문 바로가기
개발/php

php 연관배열 정렬하기 / asort, arsort

by lucidmaj7 2020. 4. 21.
728x90
반응형

php에서 연관배열은 많이 사용되는 기능 중 하나입니다. 데이터베이스에서 값을 fetch해오거나 URL등을 파싱하거나, GET, POST파라미터 등을 파싱한다거나 할때 많이 쓰입니다.

php 연관배열을 value에 따라 정렬을 할 수 있는 기능을 asort와 arsort를 통해 제공하고 있습니다.

asort ( array &$array [, int $sort_flags = SORT_REGULAR ] ) : bool

첫번째 파라미터 array에는 정렬하고자 하는 array를 넣습니다. 두번째 인자인 sort_flags에는 정렬 옵션을 넣습니다.

asort의 sort_flags는 다음과 같습니다.

  • SORT_REGULAR - compare items normally; the details are described in the comparison operators section
  • SORT_NUMERIC - compare items numerically
  • SORT_STRING - compare items as strings
  • SORT_LOCALE_STRING - compare items as strings, based on the current locale. It uses the locale, which can be changed using setlocale()
  • SORT_NATURAL - compare items as strings using "natural ordering" like natsort()
  • SORT_FLAG_CASE - can be combined (bitwise OR) with SORT_STRING or SORT_NATURAL to sort strings case-insensitively

예제는 다음과 같습니다.

<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
asort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

반대로 arsort를 통해 내림차순으로 정렬할 수 있습니다.

arsort ( array &$array [, int $sort_flags = SORT_REGULAR ] ) : bool

 

참고

https://www.php.net/asort

 

PHP: asort - Manual

I use this for quasi-SQL orderby. Loosely based on smileaf. Any good for you nerds? $fields)              $named_hash["$key"] = $fields[$order_by]; // Order 1-dimensional array, // maintaining key-value relations       if($reverse) arsort($named_hash,$flag

www.php.net

https://www.php.net/manual/en/function.arsort.php

 

PHP: arsort - Manual

If you need to sort a multi-demension array, for example, an array such as $TeamInfo[$TeamID]["WinRecord"] $TeamInfo[$TeamID]["LossRecord"] $TeamInfo[$TeamID]["TieRecord"] $TeamInfo[$TeamID]["GoalDiff"] $TeamInfo[$TeamID]["TeamPoints"] and you have say, 10

www.php.net

 

728x90
반응형

댓글