我这里有我的代码,方法如下:
$db = DB::getInstance();
$templates = $db->get('templates', array('user_id', '=', 'username'));
$templates = $templates->results();
echo '<pre>', print_r($templates), '</pre>';
返回以下内容:
Array
(
[0] => stdClass Object
(
[user_id] => username
[template_id] => 2
[template_name] => invoice1
[template_description] => dear {{customer}},
The {{item}} will cost {{price}}.
)
[1] => stdClass Object
(
[user_id] => username
[template_id] => 3
[template_name] => invoice2
[template_description] => Dear {{customer}},
You have selected {{package type}} service. Your {{item}} will cost {{price}}.
)
我可以使用 foreach 循环成功地从数组中获取一个template_description,如下所示:
foreach($templates[1] as $key=>$value){
$value;
}
但是,我有多个template_descriptions我想得到,我不确定如何获得。我对foreach循环和对象不是很熟悉。
如果我从"$templates"中删除数字,则会出现错误:
Fatal error: Cannot use object of type stdClass as array in C:xampphtdocsemailtest.php on line 15
为什么只循环一个元素(第二个对象)?从foreach
中删除[1]
foreach($templates[1] as $key=>$value){
^ Wrong way
这样做:
foreach($templates as $obj){
echo $obj->template_descrption;
}
你只需要从你的foreach中省略数组键,如下所示:
foreach($templates as $template){
echo $template->template_description;
}
foreach($templates as $template){
foreach($template as $key=>$value){
echo $value;
}
}