我需要一些关于foreach循环的帮助。说我有这个方法:
public function showPaymentDetails() {
$data = array("name" => $this->name,
"lastname" => $this->lastname,
"email" => $this->email,
"company" => $this->company,
"event_name" => $this->event_name,
"event_price" => $this->event_price,
"uniqid" => $this->uniqid,
"mobile" => $this->mobile,
"travel" => $this->travel,
"job" => $this->job,
"how_hear" => $this->how_hear,
"geusts" => $this->guests,
"slider_network" => $this->slider_network,
"slider_invest" => $this->slider_invest,
"slider_investors" => $this->slider_investors,
"gender" => $this->gender
);
return $data;
}
现在我想将数组的每个值赋给变量。这就是我的工作:
$i = 0;
foreach($data as $row[$i]) {
$row[$i];
$i++;
}
echo $row[0];
echo $row[1];
echo $row[2];
如您所见,我正在为$row[]
分配值。这真的很糟糕。如何将这些值分配给$name
,$lastname
等变量名称
谢谢!
答案 0 :(得分:3)
我认为您不需要在数组中循环,您只需使用数组分配变量,使用键分配范围
$data = showPaymentDetails();
$name = $data['name'];
$lastname = $data['lastname'];
//and so on
答案 1 :(得分:2)
你可以做到
foreach($data as $key => $value) {
$$key = $value;
}
然后将$this->name
变为$name
。然而,这是非常糟糕的做法。你最好只是访问像
$data['name'];
$data['lastname'];
//Etc
答案 2 :(得分:1)
变量就是你所描述的,但是我只使用$data
数组而不是分配给各个变量:
foreach($data as $key => $value) {
$$key = $value;
}
此外,extract($data);
也是同样的结果。
仔细看看你的代码让我想知道,为什么在世界上你在一个由已经存在的对象变量组成的类函数中构建一个数组,只是为了将它们转换成独立的变量?到目前为止设计不好。
答案 3 :(得分:0)