我想拆分一个字符串并将输出设置为变量
$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;
}