2017-09-26 62 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'功能。

希望它可以帮助你:)