k00*_*00k 5 php mysql codeigniter multidimensional-array
在为多维数组提供count和foreach的正确组合时遇到一些麻烦.
我目前正在执行以下操作来从我的db返回的结果创建一个关联数组:
$sql = "SELECT g.id, g.shortname FROM games g ORDER BY g.id ASC";
$query = $this->db->query($sql);
if($query->num_rows() > 0):
foreach($query->result() as $row):
$data[$row->id] = $row->shortname;
endforeach;
return $data;
else:
return false;
endif;
Run Code Online (Sandbox Code Playgroud)
这当然产生以下数组(工作正常;半仿代码):
array ( [1] => CoolGame, [2] => AnotherGame, [3] => BetterGame, [4] => UglyGame)
Run Code Online (Sandbox Code Playgroud)
....等等
但我想要做的是通过多维数组自动将结果(基于计数var/limiter)分解成组,如下所示:
array (Group 1 =>
array([1] => CoolGame [2] => AnotherGame),
Group 2 =>
array([3] => BetterGame [4] => UglyGame)
)
Run Code Online (Sandbox Code Playgroud)
所以在那个例子中,我的 $depth_count = 2;
如果有人感兴趣,我这样做是为了<optgroup>通过CI的表单助手的form_multiselect()函数使用自动生成的标签进行多选.需要一些帮助来调整我的PHP来实现这一点.谢谢!
你可以使用php的array_chunk方法.请注意它在以下修改代码中的用法:
if($query->num_rows() > 0):
foreach($query->result() as $row):
$data[$row->id] = $row->shortname;
endforeach;
$data = array_chunk($data, 2);
return $data;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1731 次 |
| 最近记录: |