[ php ] 다차원 배열을 원하는 필드로 정렬하고 싶을 때 > php

본문 바로가기
사이트 내 전체검색

php

[ php ] 다차원 배열을 원하는 필드로 정렬하고 싶을 때

페이지 정보

작성자 웹지기 댓글 1건 조회 3,913회 작성일 18-10-04 11:35

본문

데이터베이스 테이블을 모방 한 배열이 있다고 가정합니다. 

각 배열 요소는 행을 나타내며 각 행 내에서 필드 이름과 값을 포함하는 다른 배열입니다.

[code]

Array

(

    [0] => Array

        (

            [name] => 'Sony TV'

            [price] => 600.00

        )


    [1] => Array

        (

            [name] => 'LG TV'

            [price] => 350.00

        )


    [2] => Array

        (

            [name] => 'Samsung TV'

            [price] => 425.00

        )  

}

[/code]

외부 배열 요소에 따라 정렬하는 것

여기서 원하는 필드는 price

[code]

Array

(

    [0] => Array

        (

            [name] => 'LG TV'

            [price] => 350.00

        )


    [1] => Array

        (

            [name] => 'Samsung TV'

            [price] => 425.00

        )


    [2] => Array

        (

            [name] => 'Sony TV'

            [price] => 600.00

        )        

}

[/code]

추천0 비추천0

댓글목록

웹지기님의 댓글

웹지기 작성일

usort() 사용
[code]
function sort($a, $b)
{
    if($a['정렬원하는 필드'] == $b['정렬원하는 필드']) return 0;
    return ($a['정렬원하는 필드'] > $b['정렬원하는 필드']) ? 1 : -1; //숫자의 경우는 되겠지만 문자가 될런지 음....
}
[/code]


코드를 재사용하려면 클래스를 만들어서 사용하는게 좋다.
[code]
class FieldSorter
{
    public $field;

    function __construct($field)
    {
        $this -> field = $field;
    }
    function cmp($a, $b)
    {
        if($a[$this -> field] == $b[$this -> field]) return 0;
        return($a[$this -> field] > $b[$this -> field] ? 1 : -1;
    }
}
$sorter = new FieldSorter('정렬원하는 필드');
usort($array, array($sorter, "cmp"));
[/code]

이런식으로 원하는 필드로 정렬을 할 수 있다.
외부 배열의 키를 보존할 때는 usort() 대신 uasort() 를 사용할 수 있다.

Total 82건 4 페이지
  • 36 [ php ] [ class ] 클래스( class )에서 지시자( -> )의 의미
  • 객체는 자신만의 변수와 함수 가질 수 있습니다. 객체에서 변수, 함수는 각각 멤버변수 , 메쏘드 라고 불립니다.class test { var $a;// 멤버변수 (클래스 안에서 변수를 정의 할때는 var를 반드시 적어 주어야 한다.) var $b; function aaa() {// 메쏘드 (클래스안의 함수를 메쏘드 라고 한다.) $this->abcd = " 알파벳";// 메쏘드안에서 변수 정의할 때는 $this를 붙혀 준다. }}위와 같이 test 란 class 가...
  • 웹지기 09-30 19899 0 0 댓글 0
  • 35 [ php ] [ class ] 클래스( Class ) 사용을 위한 기본 지식
  • 1. Class 란?클래스는 변수와 변수에 관계되는 함수로 이루어진 하나의 변수형이다.함수저장소 또는 비슷한 함수모음 이라고 이해하면 되겠다.2. Class의 기본 형태<?phpclass Plan{ function testPlan() { echo(" Call to testPlan function!"); }}$skyplan =newPlan; // 객체변수를 생성하기 위해 new를 사용함$skyplan->testPlan(); // testPlan...
  • 웹지기 09-30 3465 0 0 댓글 0
  • 34 [ php ] 모든 언어를 나의 언어로 만들자!!!(베타버젼 입니다.) - 헌이님
  • 구글 번역이 유료화 되면서 마이크로 소프트사의 API 번역기를 이용하여 만들어 봤습니다.연동하기 시작한지는 좀 되었는데, 오늘 마무리를 합니다.유료화 하는 스킨인데요 ....... .오늘은 특별히 이런 저런 일이 많았습니다. 특히나군포돼지님과 좋은친분으로 갖기로한 나만의(?) 기념으로 올립니다.TEST http://linkma.kr/bbs/write.php?bo_table=Community유료자료실 http://linkma.kr/bbs/board.php?bo_table=SIR_SKIN2초보자를 위...
  • 웹지기 09-30 3613 0 0 댓글 0
+1
  • 31 [ php ] fopen, fgets, fclose, fseek, ftell
  • 1. fopen, fgets, fcloselog 파일 또는txt나 csv로 된 DB파일을 불러올 때 쓰는 함수다.$file = 'log.txt'; // 불러올 파일명$f =fopen( $file, "r" ); // 파일을 열어 '읽기만' 한다. (포인터는 파일의 맨 처음)$line =fgets( $f, 4096 ); // 한 줄을 읽는다.echo $line; // 한 줄을 출력한다.fclose($f) // 파일을 닫는다.각 함...
  • 웹지기 09-30 5487 0 0 댓글 0
  • 30 [ php ] php 업로드 작성 및 파일 업로드 보안문제 - 7가지
  • 1.php,inc,html,htm,phtml,php3 등의 확장자는 절대로 올릴 수 없게 한다 !.txt 도 못올리게 합니다. .txt 를 사용해서 쿠키를 훔칠수도 있다.2.업로드 디렉토리는 무조건 htdocs 아래 말고 다른 디렉토리 에 올린다 !!/updir 이나 c:\updir 등 htdocs 와 관련이 없는 디렉토리에 올리게 한다. !!3.CP명령을 사용시에 exec(cp $file , 처럼 exec() 를 절대로 사용하지 말아야 한다.기냥 cp()만을 사용하라 !!!www.php.net/...
  • 웹지기 09-30 4900 0 0 댓글 0
  • 29 [ php ] php로 디렉토리 삭제
  • php 디렉토리와 하위 파일까지 한꺼번에 삭제하는 함수[code]// 사용시 모든 데이터가 날아가므로 주의를 요함(Recursive)function LIB_removeAllData( $URL ){ if( is_dir( $URL )) { if( $dh = opendir( $URL ) ) { while( ( $file = readdir( $dh ) ) !== false ) { if( $file == '.' || $file == ".." ) continue; if( f...
  • 웹지기 09-30 4369 0 0 댓글 0
  • 28 [ php ] 게시판 권한, 그룹관리자 권한 수정시
  • /lib/common.lib.phpfunction is_admin 을 변경// 관리자인가?[code]function is_admin($mb_id){ global $config, $group, $board; if (!$mb_id) return; if ($config['cf_admin'] == $mb_id) return 'super'; //if ($group['gr_admin'] == $mb_id) return 'group'; //그룹관리자를 몽땅 만들기 위해 추가 2011.1.2 FREEMASTER...
  • 웹지기 10-01 6274 0 0 댓글 1
  • 27 [ php ] PHP 정규식
  • 파일이나 문자열 내에 포함되어 있는 특별한 패턴(또는 특별한 조건을 만족하는 문자열)을 검색하기 위해 미리 정의된 다양한 특수 문자들의 조합을 정규식(regular __EXPRESSION__)이라 한다. 정규식에서의 특수 문자(special character)는 다음과 같다.(1) ^ (caret) : 라인의 처음이나 문자열의 처음을 표시예 : ^aaa (문자열의 처음에 aaa를 포함하면 참, 그렇지 않으면 거짓)(2) $ (dollar) : 라인의 끝이나 문자열의 끝을 표시예 : aaa$ (문자...
  • 웹지기 10-01 3433 0 0 댓글 0
  • 26 [ php ] foreach 및 array
  • [code]$state_list = array( 1 => "모집중", 2 => "마감", 3 => "운영중");if(!array_key_exists($state, $state_list)) $state = 0;$arr_key = array( "ed_name" => "평생교육사명", "ed_subject" => &#...
  • 웹지기 10-01 4788 0 0 댓글 0
  • 25 [ php ] $_SERVER 옵션 및 사용설명
  • [code]$_SERVER['DOCUMENT_ROOT'] = 현재 사이트가 위치한 서버상의 위치 => /webapp/include$_SERVER['HTTP_ACCEPT_ENCODING'] = 인코딩 받식 => gzip, deflate$_SERVER['HTTP_ACCEPT_LANGUAGE'] = 언어 => ko$_SERVER['HTTP_USER_AGENT'] = 사이트 접속한 사용자 환경 => Mozilla/4.0(compatible; MSI...
  • 웹지기 10-01 5643 0 0 댓글 0
  • 24 [ php ] strstr() 문자열 함수
  • strstr() 함수는 찾고 싶은 문자를 찾은 후 그 이후 값까지 반환한다.대소문자 구분하지 않으려면 stristr() 함수를 사용하면 된다.함수의 원형은 다음과 같다.strstr() 함수 원형[code]string strstr ( string $haystack , mixed $needle [, bool $before_needle ] )[/code]인수- haystack : 입력 문자열- needle : 찾을 문자열- before_needle : 결과가 True이면(기본값은 FALSE) hayst...
  • 웹지기 10-01 5143 0 0 댓글 0
  • 열람중 [ php ] 다차원 배열을 원하는 필드로 정렬하고 싶을 때
  • 데이터베이스 테이블을 모방 한 배열이 있다고 가정합니다.각 배열 요소는 행을 나타내며 각 행 내에서 필드 이름과 값을 포함하는 다른 배열입니다.[code]Array( [0] => Array ( [name] => 'Sony TV' [price] => 600.00 ) [1] => Array ( [name] => 'LG TV' [price] => 350.00 ...
  • 웹지기 10-04 3914 0 0 댓글 1
게시물 검색

회원로그인

접속자집계

오늘
3,709
어제
8,307
최대
33,828
전체
8,655,175

그누보드5
Copyright © funyphp.com. All rights reserved.