Php Foreach内部函数 函数dp(){ $this->load->library('heart'); $times=35; $i=0;而($iheart->test(); //10最新 $query=$this->db->get('test',10,20); //从查询中设置变量 foreach($query->result()作为$getrow) { $data1=$getrow->data1; $data2=$getrow->data2; } //对于每个数据1;do go(); foreach($data1作为$id){ $this->heart->go($id,$data2); } //增量$i $i++; } }

Php Foreach内部函数 函数dp(){ $this->load->library('heart'); $times=35; $i=0;而($iheart->test(); //10最新 $query=$this->db->get('test',10,20); //从查询中设置变量 foreach($query->result()作为$getrow) { $data1=$getrow->data1; $data2=$getrow->data2; } //对于每个数据1;do go(); foreach($data1作为$id){ $this->heart->go($id,$data2); } //增量$i $i++; } },php,codeigniter,Php,Codeigniter,嘿,伙计们,这是我的代码。我试图从数据库中获取最新的条目,然后将它们设置为变量。对于每个变量,我试图调用一个函数来传递$id(data1)和$data2。data2会被传递吗?还是我需要做一些类似$data1作为$id&$data2作为$id2的事情。我需要传递$data1和$data2作为go()每次都不一样 这里的问题是,每当我尝试运行代码时,总是会收到“为foreach()提供的参数无效”。有人知道这里的问题是什么吗 提前谢谢。我相信您确实想要创建$data1和$data2的数组 当前,每

嘿,伙计们,这是我的代码。我试图从数据库中获取最新的条目,然后将它们设置为变量。对于每个变量,我试图调用一个函数来传递$id(data1)和$data2。data2会被传递吗?还是我需要做一些类似$data1作为$id&$data2作为$id2的事情。我需要传递$data1和$data2作为go()每次都不一样

这里的问题是,每当我尝试运行代码时,总是会收到“为foreach()提供的参数无效”。有人知道这里的问题是什么吗


提前谢谢。

我相信您确实想要创建
$data1
$data2
的数组

当前,每次通过第一个foreach循环都会覆盖这些变量中的值

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++;   
        }

        }
或者,您可以使用data1和data2作为数组的键/值对

$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]);
}

您可以使用单个foreach循环完成所有操作,而无需构建不必要的数据数组:

$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);
}
foreach($query->result() as $getrow) {
   $this->heart->go($getrow->data1, $getrow->data2);
}