2016-03-15 78 views
0

我想解決這個分支樹搜索,我想收集1個變量數組中的分支的所有值,並且問題是,分支函數返回當有很多值時,只有2個值,實際上我使用的是Codeigniter。如何添加一個數組值的使用數組推動功能php

這是我的父功能:

$data['left'] = array(); 
    $data['right'] = array(); 
    $c=array(); 
    foreach ($root as $r){ 
     if ($r->branch_status=="L"){ 
      array_push($data['left'], array($r->member_id, $r->member_name, $r->member_phone)); 
      $c = $this->branch($r->member_id); 
      for ($i=0; $i<count($c); $i++){ 
       echo "array member : ".$c[$i][0]."<br>"; 
      } 
     } else if ($r->branch_status="R"){ 
      array_push($data['right'], array($r->member_id, $r->member_name, $r->member_phone)); 
      $c = $this->branch($r->member_id); 
      for ($i=0; $i<count($c); $i++){ 
       echo "array member : ".$c[$i][0]."<br>"; 
      } 
     } 
    } 

,這是我的分支功能:

public function branch($id){ 
    $br = array(); 
    $branch = $this->M_member->member($id); 
    foreach ($branch as $b){ 
     if (empty($b)){ 
      echo "empty member"; 
     } else{ 
      array_push($br,array($b->member_id,$b->member_phone)); 
      $this->branch($b->member_id); 
     } 
    } 
    for ($i=0; $i<count($br); $i++){ 
     echo "array member : ".$br[$i][0]." phone : ".$br[$i][1]."<br>"; 
    } 
    return $br; 
} 
+0

我沒有經過代碼,但通常這種類型的問題錯誤是圍繞'$ this->分支($ b-> member_id);' - 你沒有做任何事情與此通話的返回值一起丟失。 – VolkerK

+0

嘗試array_push(&$ br,數組($ b-> member_id,$ b-> member_phone));.檢查是否工作 – codeGig

+1

它在編譯時出錯,帶有錯誤信息「調用時傳遞引用已被刪除」 – Demon

回答

1

的主要原因是$ BR分支函數的局部聲明。這應該工作

public function branch($id, &$br=array()){ 

    $branch = $this->M_member->member($id); 

    foreach ($branch as $b){ 
     if (empty($b)){ 
      echo "empty member"; 
     } else{ 
      //array_push($br,array($b->member_id,$b->member_phone)); 
      $br[] = array($b->member_id,$b->member_phone); 
      $this->branch($b->member_id, $br); 
     } 
    } 
    return $br; 
} 
+0

它不起作用,在這種情況下,遞歸函數剛剛獲得了1個值,並且在添加了1個值之後遞歸,我已經嘗試通常使用(),而不是使用array_push來插入值,但仍然相同 – Demon

+0

我已經修改它,以便數組通過引用傳遞。這應該工作得很好!我在正常的PHP函數中測試了它。它在那裏工作,所以希望它能夠工作。 –

+0

[已解決]謝謝,它的工作很完美 – Demon

相關問題