2012-07-01 3 views
1

codeIgniter를 사용하고 있습니다. DB 명명 대학에서 데이터의 다차원 배열을 만들어야합니다. 데이터베이스에는 id, OfID 및 name의 세 열이 있습니다. OfID 열에는 해당 대학의 학부모 ID가 포함됩니다. 부모가없는 대학의 경우 OfID가 0입니다.데이터베이스에서 가져온 데이터의 다차원 배열 만들기

배열에는 OfID = 0 인 대학의 이름, ID 및 OfID가 첫 번째 차원의 요소로 포함되어야합니다. OfID! = 0 인 대학은 ID가 OfID 인 대학의 2 차원 배열로 배치해야합니다.

이 작업을 재귀 적으로 수행 할 생각이지만이 작업을 완료 할 수 없습니다. 나는 많은 실수가 있음을 알고 있습니다. 제발 도와주세요.

모델 클래스는 다음과 같습니다

class Model extends CI_Model 
{ 
var $return_this=array(); 
function meth() 
{  
    $loop_id=0; 
    getit($loop_id); 
    var_dump($return_this); 
} 
function getit($loop_id) 
{ 
    $index=0; 
    $query = $this->db->query("select * from college where OfID=$loop_id ORDER BY `OfID` ASC;"); 
    if ($query->num_rows() > 0) 
    { 
     foreach ($query->result() as $row) 
     { 
      $pass=$row->id; 
      $temp=getit($pass); 
      if($temp==0) 
      $return_this[$loop_id]= $query->result(); 
     } 
    } 
    else return 0; 
} 

} 
+0

실수로 $ this 키워드를 사용하지 않았습니다. – user1494613

답변

1

이 같은 시도 (컨트롤러가 메타() 함수를 호출) : 어떤 경우

$rows = array(); 
foreach ($query->result() as $row) 
    { 
     $pass=$row->id; 
     $rows[] = getit($pass); 
    } 
return $rows; 

을, 가장 좋은 방법은 내 자신을 재귀을 발견 정말 간단하고 당신이 그것에 대해 모든 측면을 알고, 단계적으로 그것을 구축하는 몇 가지 재귀 함수를 취하는 것입니다. "단계별로"는 처음에 모든 값을 전달하지는 않지만 인쇄하여, 무엇을, 어디서, 어떻게 얻었는지를 확인한 다음, 그 값을 전달하려고합니다. 그것이 어떻게 작동하는지 이해하지 못한다면이 재귀 함수는 뇌 손상입니다. 당신의 생각 뒤에있는 생각은 당신이 아이 대학이있는 대학을 우연히 발견 할 때마다 배열을 얻는 것입니다. 나는 당신이 그것을 올바르게 받아들이는 것을 볼 수 있습니다. 이전에 말씀 드렸듯이 이것을 한 번 해보십시오 - 단계별로 배우십시오.

+0

나는 당신이 말하는 것을 얻는다, 고마워. – user1494613

+0

실수로 $ this 키워드를 사용하지 않았습니다. – user1494613

관련 문제