拆分字符串并将输出设置为变量


Split a string and set the output into variables

我想拆分一个字符串并将输出设置为变量

$test = 1,2,3;

值是动态的,因此它们可以更改。有时有更多的价值观。所以我想动态地设置变量$test1 $test2等。我想得到这样的:

$test1 = 1;
$test2 = 2;
$test3 = 3;
etc.

当我爆炸它时,我得到一个数组。我想把它当作绳子拿回来。所以我可以在Where子句中使用它(不是数组的Where,因为我已经在数组中尝试过了。)

型号(代码点火器):

function rapport_detail_kosten($idKlant){
            $this->db->from('Project');
                $this->db->join('Kosten', 'Kosten.idProject = Project.idProject');
if ($idKlant > 0){
        $this->db->where('idKlant', $idKlant);}
         $query = $this->db->get();
    $project = array();
            foreach($query->result() as $row){
                $project[] = $row->idProject;
            }
    $hoi = implode(" ",$project); 
         $sum = 0;
 $this->db->select_sum('Prijs'); 
 $this->db->from('Kosten');
 $this->db->where_in('Kosten.idProject',$hoi);
 $query = $this->db->get();
 foreach ($query->result() as $row){
     $sum = $row->Prijs;
 }
        if($query->num_rows()>0){
            return $query->result();
             return($sum);
         }
        else{
             return false;
         }
     }

如果$test是字符串:

$test = explode(',', '1,2,3');

然后:

list($test1, $test2, $test3) = $test;

或:

foreach ($test as $value) {
  ${'test' . $value} = $value;
}

与@hsz答案相同,但有一点不同。。

foreach ($test as $key=>$value) {
   // +1 because 1st array key is 0 
   ${'test' . ($key+1)} = $value;
}

或带有计数器

$i = 1;
foreach ($test as $value) {
   ${'test' . $i++} = $value;
}

但这完全取决于你真正需要什么。。一旦你在1个数组中有了值,你就可以更容易地使用它们,然后创建这样的变量。。

对于SQL,请检查我的编辑

function rapport_detail_kosten($idKlant){
    $this->db->from('Project');
    $this->db->join('Kosten', 'Kosten.idProject = Project.idProject');
    if ($idKlant > 0){
        $this->db->where('idKlant', $idKlant);
    }
    $query = $this->db->get();
    $project = array();
    foreach($query->result() as $row){
        $project[] = $row->idProject;
    }
    $sum = 0;
    $this->db->select('Kosten.idProject, SUM(Kosten.idProject) as sum'); 
    $this->db->from('Kosten');
    $this->db->where_in('Kosten.idProject',$project);
    $query = $this->db->get();
    if($query->num_rows()>0){
        return $query->result();
    }
    return false;
}
    $count = 0;
    foreach ($test as $value) {
      $count++
      ${'test' . $count} = $value;
    }