2017-09-26 65 views
-1

我想在for循環中生成一些變量的數組。$ priManagerId = 516第一次,346第二次和675第三次,依此類推。但我最後value.How錯誤的陣列來獲得類似的值(516346675,......,1599)array_push非數組值

protected $priManagerId = array(); 
foreach($proOwnerPM as $PriManager){ 
      if($PriManager->manager_aceid!='') 
      { 
       $priManagerId= DB::table ('users')->where('aceid','=',$PriManager->manager_aceid)->first()->id; 
       print_r($priManagerId); //516 
       $priManagerId=(array)$priManagerId; 

       array_push($priManagerId,$priManagerId); 

      } 
      } 
      var_dump($priManagerId); 

    output 
    array (size=2) 
    0 => int 1599 
    1 => 
    array (size=1) 
     0 => int 1599 //last value 

回答

0

變化$priManagerId= DB::table$userId= DB::table。你不得不陣列和DB響應定義相同的變量名

protected $priManagerId = array(); 
foreach($proOwnerPM as $PriManager){ 
      if($PriManager->manager_aceid!='') 
      { 
       $userId= DB::table ('users')->where('aceid','=',$PriManager->manager_aceid)->first()->id; 
       print_r( $userId); //516 


       array_push($priManagerId, $userId); 

      } 
      } 
      var_dump($priManagerId); 
0

更簡單的方法是在數組名後面加上'[]'來填充數組。
就像是:

$priManagerId[] = DB::table ('users')->where('aceid','=',$PriManager->manager_aceid)->first()->id; 

它會自動填充數組,你要尋找的。 然後,你不需要'array_push'功能。

希望它可以幫助你:)