2013-06-07 1 views
1

그냥 usort와 관련된 몇 가지 예제를 살펴 봤는데 배열에 대한 함수를 만드는 데 머리를 쓰지 않습니다. 나는 그것이 아주 간단하다는 것을 확신합니다, 그래서 나는 여기서 물을 것이라고 생각했습니다. 나는 나뭇 가지와 레드 비드를 사용하고 있습니다. 그러나 나는 그것이 relavant라고 생각하지 않습니다. 여기 내 코드입니다 :내 특정 배열에서 usort를 사용하는 방법

$user = $_SESSION['user']; 
$userfol = R::find('follow','user_id=?', array($user->id)); 
foreach ($userfol as $uf) 
{ 
    $userrec = R::find('recipe','user_id=?', array($uf->following_id)); 
} 

내가 만든 자신의 날짜를 기준으로 요리법을 표시 할 배열 $ userrec을 정렬하려면 내가 한 번에 한 조리법을 표시로 제한합니다. 어떤 아이디어?

대단히 감사합니다.

+5

나는 데이터베이스에서 이것을하는 것이'usort'를 사용하는 것보다 훨씬 건설적인 것이라고 생각합니다. – deceze

+0

나는 Deceze에 동의합니다. DB에서 할 수 있다면 PHP에서는 그렇게하는 것이 의미가 없습니다. – Robert

+0

고마워요, 내가 어떻게 그렇게 제안합니까? – MikeHolford

답변

1

데이터베이스에서이 작업을 수행하는 주석이 가장 효율적입니다. RedBean에 대한 설명서를 찾은 결과 http://redbeanphp.com/manual2_0/finding_beans입니다. 거기에서 촬영 :

$needles = R::find('needle',' haystack = :haystackname 
           ORDER BY :sortorder', 
array('sortorder'=>$sortorder, ':haystack'=>$haystack)); 

위와 같이 수행 될 코드에이 예제를 적용하면 다음과

$user = $_SESSION['user']; 
$userfol = R::find('follow','user_id=? ORDER BY create_date', array($user->id)); 
foreach ($userfol as $uf) 
{ 
    $userrec = R::find('recipe','user_id=?', array($uf->following_id)); 
} 

위의 예제의 정렬 순서는 동적이지,하지만 당신은 물음표로 교체 할 수 있습니다 단지 사용자 ID와 같습니다.

나는 그것을 사용할 수 있지만 물음표 대신 이름을 사용할 수 있습니다. 물음표는 거기에 넣은 순서대로 평가되고 데이터 배열의 값을 순서대로 가져옵니다. 콜론으로 시작하면 연관 배열에서 그 이름을 찾을 것이고 이는 유리할 수 있습니다.

어쨌든 usort를 사용하려는 경우, here을 설정합니다. 분류기 함수가 $ a와 $ b의 create_date 요소를 비교하는 것을 볼 수 있듯이이 함수를 응용 프로그램과 관련된 것으로 바꿀 수 있습니다. 당신이 반환해야하는지에 관해서는, 문서에서 인용합니다 : 첫 번째 인수에 비해 각각 적은 로 간주되는 경우

비교 기능이 큰 0보다 같 이하의 정수, 또는 을 반환해야합니다, 두 번째 것보다 같거나 큰 것.

+0

감사합니다. 전에 본 적이 있지만 코드를 구현하는 방법을 잘 모릅니다. 위의 예가 내 코드에서 어떻게 보이는지 알고 있습니까? 순진한 것에 대해 유감스럽게 생각합니다. – MikeHolford

+0

@MikeHolford 내 대답이 업데이트되었습니다. – WouterH

+0

와우 대단히 감사합니다. @WouterH 도와 주시면 감사하겠습니다. 매우 친절하다. – MikeHolford

관련 문제