function dp(){
$this->load->library('heart');
$times = 35;
$i = 0; while ($i<$times){
$this->heart->test();
//10 newest
$query = $this->db->get('test', 10, 20);
//set variables from query
foreach ($query->result() as $getrow)
{
$data1 = $getrow->data1;
$data2 = $getrow->data2;
}
//for each data1; do go();
foreach ($data1 as $id){
$this->heart->go($id,$data2);
}
//increment $i
$i++;
}
}
嘿伙计们,这是我的代码。我试图从数据库中获取最新的条目,然后将它们设置为变量。对于每个变量,我试图调用一个函数来传递$ id(data1)和$ data2。数据2是否会通过,或者我需要像$ data1那样做$ id&amp;&amp; $ data2为$ id2。我需要将$ data1和$ data2传递给go(),每次都应该是不同的。
这里的问题是每当我尝试运行代码时,我都会得到'为foreach()提供的无效参数。任何人都知道这里的问题是什么?
提前谢谢。
答案 0 :(得分:0)
我相信您实际上想要创建$data1
和$data2
的数组。
目前,每次通过第一个foreach循环时,您都会覆盖每个变量中的值。
$data1 = array();
$data2 = array();
//set variables from query
foreach ($query->result() as $getrow)
{
$data1[] = $getrow->data1;
$data2[] = $getrow->data2;
}
//for each data1; do go();
foreach ($data1 as $key => $id){
$this->heart->go($id,$data2[$key]);
}
或者,您可以使用data1和data2作为数组的键/值对
$data = array();
foreach ($query->result() as $getrow)
{
$data[$getrow->data1] = $getrow->data2;
}
//for each data1; do go();
foreach ($data as $key => $value){
$this->heart->go($key, $value);
}
答案 1 :(得分:0)
您可以使用单个foreach循环完成所有操作,而无需构建不必要的数据数组:
foreach($query->result() as $getrow) {
$this->heart->go($getrow->data1, $getrow->data2);
}