2012-01-30 208 views
0

我想將數組加載到對象上。數組可以是單個數組,也可以是數組數組(指示要運行的輸入數)。我到目前爲止的代碼如下。是否有一種更簡單的方法來調用單個方法並確定它是作爲單個加載還是循環加載進行處理?根據陣列類型處理輸入

public function addInput($input) { 
    $this->inputs[] .= new Input($input); 
} 

public function addInputs($matrix_of_inputs) { 
    foreach($matrix_of_inputs as $input) { 
     $this->inputs[] .= new Input($input); 
    } 
} 

回答

1
public function addInput($input) 
{ 
    $this->inputs[] = new Input($input); // note that I have removed the dot .= 
} 

public function addInputs($matrix) 
{ 
    if (!is_array($matrix)) { 
     $this->addInput($matrix); 
     return; 
    } 

    foreach($matrix as $input) { 
     if (is_array($input)) { 
      $this->addInputs($input); // if it can be multidimensional, might not be needed 
      continue; 
     } 
     $this->addInput($matrix); 
    } 
} 
+0

也許我失去了一些東西......是那裏array_merge原因()不在這裏工作了(如圖我的反應)? – 2012-01-30 23:07:00

+0

@ConradShultz OP希望輸入是「輸入」的一個實例。他用額外的點打錯了(或錯誤)。我認爲這將是很好的炫耀它可以處理多維陣列;) – PeeHaa 2012-01-30 23:13:47

0
public function addInputs($inputs) { 
    array_merge((array)$this->inputs, (array)$inputs); 
}