2011-12-25 3 views
0

저는이 문제를두고 머리를 감쌀 수 없습니다. 내가 누락 된 것은 논리 비트입니다.PHP foreach 키/값순으로 정렬합니다.

array(3) { 
    [0]=> 
    array(2) { 
    ["lang"]=> 
    string(4) "en" 
    ["url"]=> 
    string(42) "http://feeds.feedburner.com/wordpress/haJM" 
    } 
    [1]=> 
    array(2) { 
    ["lang"]=> 
    string(4) "en" 
    ["url"]=> 
    string(37) "http://feeds.feedburner.com/hackaday/LgoM" 
    } 
    [2]=> 
    array(2) { 
    ["lang"]=> 
    string(4) "klingon" 
    ["url"]=> 
    string(36) "http://www.maitre-eolas.fr/feed/atom" 
    } 
} 

그래서 하나 개 알 수없는 크기의 배열, 각 요소가 알고있는 크기의 배열 (2 키/값 쌍 (LANG = 뭔가 & URL = 뭔가)이있다 :

나는이 $의에서 myArray이 전체 점은 무엇이 lang인지 알지 못합니다. 실제로는 이 될 수 있습니다. (영숫자) 값

그리고 내가 원하는 것은 키가 이름별로 정렬 된 새롭고 깨끗한 배열을 만드는 것입니다. 이 :

array(2) { 
    [0]=> 
    array(2) { 
    ["lang"]=> 
    string(2) "en" 
    ["urls"]=> 
array(2) { 
    string(42) "http://feeds.feedburner.com/wordpress/haJM" 
    string(37) "http://feeds.feedburner.com/hackaday/LgoM" 
} 
    } 
    [1]=> 
    array(2) { 
    ["lang"]=> 
    string(6) "klingon" 
    ["urls"]=> 
array(1) { 
    string(36) "http://www.maitre-eolas.fr/feed/atom" 
} 
    } 
} 

하지만 첫 번째 $ myArray [0] [ 'lang']을 변수에 넣고 다음과 비교하려고하면 작동합니다 ... 작동합니다. 일단. 그리고 멈 춥니 다.

내가 잘못하고 있습니다. 나는 을 알고 있습니다.입니다.

+1

코드를 올리시겠습니까? 우리는 당신이 뭘 잘못하고 어떻게 고쳐야 하는지를 말할 수 없습니다. –

답변

3

이 시도 :

$aResult = array(); 
foreach($aInput as $aRow){ 
    $aResult[$aRow['lang']][] = $aRow['url']; 

} 

즉, 당신에게 줄 것이다 : 당신은 정말 형식은 위의

array: 
    'Klingon' 
     'URL1' 
     'URL2' 
    'en' 
     'URL1' 
     'URL2' 

을 나열해야합니까? 아니면 이것도 마찬가지입니까?

+0

와우. 우리가 여기서 말하는 것처럼 니켈을 사용하십시오. 고마워. – yPhil

+0

좋아요! 기꺼이 도와주세요. –