数据如:
INSERT INTO `vm_nav` (`id`, `ctype`, `cid`, `name`, `ifshow`, `vieworder`, `opennew`, `url`, `type`) VALUES(1, NULL, 0, 'index', 0, 1, 0, '', 'nav'),(2, NULL, 0, 'product', 1, 2, 0, '', 'nav'),(3, NULL, 0, 'member', 1, 3, 0, '', 'nav'),(4, NULL, 0, 'guide', 1, 4, 0, '', 'nav'),(5, NULL, 0, 'kehu', 1, 5, 0, '', 'nav'),(6, NULL, 0, 'about', 1, 6, 0, '', 'nav'),(7, NULL, 0, 'tehui', 1, 7, 0, '', 'nav'),(8, NULL, 3, 'member_index', 1, 1, 0, '', 'nav'),(9, NULL, 3, 'member_info', 1, 2, 0, '', 'nav');
求这种数据
array(8) { [0]=> array(6) { ["id"]=> string(1) "2" ["name"]=> string(12) "product" ["opennew"]=> string(1) "0" ["url"]=> string(0) "" ["ctype"]=> NULL ["cid"]=> string(1) "0" } [1]=> array(6) { ["id"]=> string(1) "3" ["name"]=> string(18) "member" ["opennew"]=> string(1) "0" ["url"]=> string(0) "" ["ctype"]=> NULL ["cid"]=> string(1) "0" } [2]=> array(6) { ["id"]=> string(1) "8" ["name"]=> string(12) "member_index" ["opennew"]=> string(1) "0" ["url"]=> string(0) "" ["ctype"]=> NULL ["cid"]=> string(1) "3" } [3]=> array(6) { ["id"]=> string(1) "9" ["name"]=> string(12) "member_info" ["opennew"]=> string(1) "0" ["url"]=> string(0) "" ["ctype"]=> NULL ["cid"]=> string(1) "3" } [4]=> array(6) { ["id"]=> string(1) "4" ["name"]=> string(12) "guide" ["opennew"]=> string(1) "0" ["url"]=> string(0) "" ["ctype"]=> NULL ["cid"]=> string(1) "0" } [5]=> array(6) { ["id"]=> string(1) "5" ["name"]=> string(12) "kehu" ["opennew"]=> string(1) "0" ["url"]=> string(0) "" ["ctype"]=> NULL ["cid"]=> string(1) "0" } [6]=> array(6) { ["id"]=> string(1) "6" ["name"]=> string(12) "about" ["opennew"]=> string(1) "0" ["url"]=> string(0) "" ["ctype"]=> NULL ["cid"]=> string(1) "0" } [7]=> array(6) { ["id"]=> string(1) "7" ["name"]=> string(12) "tehui" ["opennew"]=> string(1) "0" ["url"]=> string(0) "" ["ctype"]=> NULL ["cid"]=> string(1) "0" }}
我用了一个笨办法:先foreach吧cid 插入到一个son成员里 然后再一个foreach 放到其后面,描述的不清楚,代码如下:
function nav_list(){ $navlist = get_navigator(); sort($navlist['nav']); //$navlist['nav'] 就是取出所有数据 ,上面用sort排了下序 foreach($navlist['nav'] as $k=>$v) { if($v['cid'] != 0) { //插入到一个son成员里 $l[$v['cid']]['son'][] = $v; }else{ $l[$v['id']] = $v; } } foreach($l as $k=>$v){ if($v['son']){ //消除son成员 $tmp[] = array_diff_key($v,array('son'=>'')); foreach($v['son'] as $key=>$val){ //再一个foreach 放到其后面 $tmp[] = $val; } }else{ $tmp[] = $v; } } return $tmp;}
~ 怎么样会快捷一点 ~??? 求解
回复讨论(解决方案)
if(cid == id)
这条cid数据就放在id数据后面 说不清楚了~~~~
select id, ctype, cid, name, ifshow, vieworder, opennew, url, type from vm_nav where ifshow and cid=0unionselect cid as id, ctype, cid, name, ifshow, vieworder, opennew, url, type from vm_nav where ifshow and cid>0order by id
一位数组转化二维?
select id, ctype, cid, name, ifshow, vieworder, opennew, url, type from vm_nav where ifshow and cid=0unionselect cid as id, ctype, cid, name, ifshow, vieworder, opennew, url, type from vm_nav where ifshow and cid>0order by id
这样取出来的数据 cid在父id前面:如
INSERT INTO `vm_nav` (`id`, `ctype`, `cid`, `name`, `ifshow`, `vieworder`, `opennew`, `url`, `type`) VALUES(2, NULL, 0, 'product', 1, 2, 0, '', 'nav'),(3, NULL, 3, 'member_info', 1, 2, 0, '', 'nav'),(3, NULL, 3, 'member_index', 1, 1, 0, '', 'nav'),(3, NULL, 0, 'member', 1, 3, 0, '', 'nav'),(4, NULL, 0, 'guide', 1, 4, 0, '', 'nav'),(5, NULL, 0, 'kehu', 1, 5, 0, '', 'nav'),(6, NULL, 0, 'about', 1, 6, 0, '', 'nav'),(7, NULL, 0, 'tehui', 1, 7, 0, '', 'nav');
好像是我吧事情搞复杂了~ ~
一位数组转化二维?
嗯 ,但 一维数组中如果有cid则需要排在cid后面,cid可以理解为父节点的下标,根节点的cid=0~~~ 大概就这个意思 ~
不应该的,排序键相同时是按自然顺序的
可带上 cid 排序
order by id, cid

PHP日志记录对于监视和调试Web应用程序以及捕获关键事件,错误和运行时行为至关重要。它为系统性能提供了宝贵的见解,有助于识别问题并支持更快的故障排除

Laravel使用其直观的闪存方法简化了处理临时会话数据。这非常适合在您的应用程序中显示简短的消息,警报或通知。 默认情况下,数据仅针对后续请求: $请求 -

PHP客户端URL(curl)扩展是开发人员的强大工具,可以与远程服务器和REST API无缝交互。通过利用Libcurl(备受尊敬的多协议文件传输库),PHP curl促进了有效的执行

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显着减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

您是否想为客户最紧迫的问题提供实时的即时解决方案? 实时聊天使您可以与客户进行实时对话,并立即解决他们的问题。它允许您为您的自定义提供更快的服务

文章讨论了PHP 5.3中引入的PHP中的晚期静态结合(LSB),从而允许静态方法的运行时分辨率调用以获得更灵活的继承。 LSB的实用应用和潜在的触摸


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3汉化版
中文版,非常好用

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。