array_push表示非数组值

时间:2017-09-26 05:36:55

标签: php arrays

我想在for循环中生成一些变量数组。$ priManagerId = 516第一次,346第二次,675第三次,依此类推。但我得到了错误的最后一个数组。如何得到像(516,346,675,...,1599)的值

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

2 个答案:

答案 0 :(得分:0)

$priManagerId= DB::table更改为$userId= DB::table。您已为数组和数据库响应定义了相同的变量名称

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);

答案 1 :(得分:0)

更简单的方法是通过在数组名称后添加“[]”来填充数组 像那样:

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

它会在您查找时自动填充数组。 然后,您不需要'array_push'功能。

希望它可以帮助你:)