Php 在foreach循环ci内创建数组索引
我有一个id数组,通过它我必须从两个表中获取数据,现在让我们一步一步地解决这个问题 第一步我必须得到我想要的数据的id,这是返回id数据的模型Php 在foreach循环ci内创建数组索引,php,Php,我有一个id数组,通过它我必须从两个表中获取数据,现在让我们一步一步地解决这个问题 第一步我必须得到我想要的数据的id,这是返回id数据的模型 function child_get($id){ $this->db->select("id"); $this->db->from('generic_table'); $this->db->where("parent",$id); $query = $th
function child_get($id){
$this->db->select("id");
$this->db->from('generic_table');
$this->db->where("parent",$id);
$query = $this->db->get();
return $query->result_array();
}
这将返回以下格式的ID数组
Array ( [0] => Array ( [id] => 13 ) [1] => Array ( [id] => 14 ) )
到目前为止我还没有问题,现在我必须遍历这个数组,并根据我使用的foreach循环的id动态地将数据添加到数组中
$arrOfIds = $data['child1'];
foreach($arrOfIds as $row) {
$data['child3']=array
(
"id" => $row["id"],
"path" => $this->Menu->test_maindata($row["id"])
);
}
foreach内部使用的模型
public function test_maindata($id)
{
$this->db->select("path");
$this->db->from('main_data');
$this->db->where("f_key",$id);
$query = $this->db->get();
return $query->result_array();
}
现在,第一个问题是覆盖迭代的每个值,只返回最后一个值,见下文
Array ( [id] => 14 [path] => Array ( [0] => Array ( [path] => almond.jpg ) ) )
您可以看到它跳过了ID13的迭代
其次,我可以按照以下模式制作这个数组吗
Array( [0] => Array( id=> 13, path=>bluebery.jpg) [1]=> Array( id=> 14, path=>almond.jpg));
循环迭代的和
$arrOfIds = $data['child1'];
foreach($arrOfIds as $row) {
$data['child3'][]=array
(
"id" => $row["id"],
"path" => $this->Menu->test_maindata($row["id"])
);
}
为什么不使用CI Framework的连接功能我正在查看它,但仍然存在一个问题,即如何将其动态添加到数组中,正如您在循环内部看到的那样,它在每个iterationArray上覆盖([id]=>14[path]=>array([0]=>array([id]=>16[path]=>almond.jpg)))连接是不正确的,它没有比较id,id是13,14,它返回14,16表之间如何相互关联?现在你必须通过php编码在视图文件中显示正确的路径好的,我已经开始工作了,它返回正确的数组,如数组([0]=>array([name]=>Almonds[path]=>almond.jpg))如果我使用$this->Menu->test_maindata(“14”);
$arrOfIds = $data['child1'];
foreach($arrOfIds as $row) {
$data['child3'][]=array
(
"id" => $row["id"],
"path" => $this->Menu->test_maindata($row["id"])
);
}