2015-01-07 2 views
2

이 예제에서는 요소 배열을 사용하고 있습니다.PHP 배열을 부모 노드 아래의 자식으로 정렬하십시오.

$array = ["Element A", "Element B", "Element C", "Element D", "Element E"] 

데이터베이스 호출을 한 후,이 "B"와 "D"는 요소 E.의 아이들이 또한있는 것으로 판단 (이미 ...이 부분을 생각), "A"는의 자식 "기음".

데모 목적으로 parent($a)"c"을, parent($e)NULL을 반환합니다.

모든 하위 요소가 상위 요소 바로 아래에 있도록 배열을 재정렬하려면 어떻게해야합니까?

["E", "B", "D", "C", "A"] 
["E", "D", "B", "C", "A"] 
["C", "A", "E", "B", "D"] 
["C", "A", "E", "D", "B"] 
+1

정렬? SQL (데이터베이스 호출) 또는 PHP를 통해? 'for' 루프를 사용한다면, 순서를 바꾸는 방법을 알아 내거나 새 루프로 푸시 (push)하는 방법을 알아 내면,'$ array'에있는 요소를 반복하고'parent ($ array [$ i])'를 호출해야합니다. 정렬 된 배열. –

+0

결과를 어떻게 보이시겠습니까? '['C ','A ','E ','B ','D ']'여야합니까? 다른 것? 다차원 배열을 원하십니까? "아래"는 무엇을 의미합니까? –

+0

DB 호출 결과를 표시하는 데 도움이 될 수 있습니다. 즉, 어떤 요소가 어떤 어린이인지 "결정된다". – mopo922

답변

1

다음의 일반적인 구조는 문제를 주문하는 방법을 간략하게 설명 할 수

올바른 해결책은 아이들이 부모 후에 직접적으로이 같은입니다. 단지 개요

if(CHILD) { 
    if(PARENT EXISTS) { 
     DELETE THIS ELEMENT 
     INSERT AT LOCATION 
    } else { 
     DELETE THIS ELEMENT 
     ADD PARENT 
     RE-ADD THIS ELEMENT 
    } 
} 

어떤 구체적인 없다 ... 당신은 배열을 원하는가

+1

이 개요를 통해 실제 코드를 만들 수있었습니다. 감사합니다! (허용) – Sane

관련 문제