2016-03-15 13 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

相关问题