2014-09-23 2 views
0

항상 세 개의 객체를 포함하는 배열을 정렬하려고합니다.두 번째와 세 번째 값이 알려진 경우 PHP에서 배열 정렬

스크립트는 두 번째와 세 번째로 반환되어야하는 개체의 이름 값을 알고 있습니다.

순서가 맞도록이 배열을 정렬하려면 어떻게해야합니까?

$categories = Array ( 

[48] => stdClass Object ( 
    [term_id] => 48 
    [name] => Hello 
    [term_group] => 0 
    [term_taxonomy_id] => 57 
    [taxonomy] => resume_category 
    [description] => 
    [parent] => 0 
    [count] => 572 
    [object_id] => 18397 
    [filter] => raw 

) 

[64] => stdClass Object ( 

    [term_id] => 64 
    [name] => World 
    [term_group] => 0 
    [term_taxonomy_id] => 75 
    [taxonomy] => resume_category 
    [description] => 
    [parent] => 0 
    [count] => 22 
    [object_id] => 18397 
    [filter] => raw 

) 

[5] => stdClass Object ( 
    [term_id] => 5 
    [name] => Test 
    [term_group] => 0 
    [term_taxonomy_id] => 75 
    [taxonomy] => resume_category 
    [description] => 
    [parent] => 0 
    [count] => 22 
    [object_id] => 5 
    [filter] => raw 

) 

내가 마지막 값으로 두 번째 값과 세계로 안녕을 원하지만 배열의 값과 순서는 동적이며 달라질 수 :

foreach ($categories as $category) { 
    echo $category->name; 
    echo ', '; 
    } 

은 반환해야합니다 : 시험, 안녕하세요, 세계

+0

하는 주문형 정렬 작업 : 당신은 당신이 결과를 얻을 것이다 루프를 실행하면 이제

$categories = changeArrayOrder($categories); 

? 'usort()' –

+3

샘플 배열을 제공하고 원하는 정렬 알고리즘을 설명 할 수 있습니까? 예 : 키 2의 알파벳순입니다. –

+0

첫 번째 줄에서 "hello"와 "world"는 소문자입니다. 결국, 첫 글자는 대문자가됩니다. 케이스는 분류와 관련하여 큰 문제입니다. 값이 "test"가 아니라면 값을 ucwords로 계획하고 있습니까? – kainaw

답변

0

실제로 배열을 정렬 할 필요는 없지만 다시 만들려고합니다.

다음과 같은 기능을 사용해야합니다

function changeArrayOrder($categories) { 
    $categories = array_values($categories); 
    return array (
     $categories[2], 
     $categories[0], 
     $categories[1], 
    ); 
} 

를하고 사용하여 실행

test, hello, world, 
관련 문제