php中多维数组问题??? 排序的方法有sortasortksort不知道你的意思。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就是说如果用下面这个while($row = $db->fetch_array($result)) { $preach[$row['curdate']][] = $row; }数组显示是我想要的结果:[2008-11-25] => Array ( [0] => Array ( [p_id] => 16 [city] => 2 [school] => 上海交通大学法国阿海珐集团(AREVA) [address] => 光彪楼一楼多功能厅法国阿海珐集团(AREVA)法国阿海珐集团(AREVA) [companyname] => 法国阿海珐集团(AREVA)法国阿海珐集团(AREVA) [contents] => 光彪楼一楼多功能厅 [meetingdate] => 2008-11-25 [meetingtime] => 5:00-12:00 [re] => 0 ) [1] => Array ( [p_id] => 17 [city] => 2 [school] => 华东理工大学 [address] => 一教101 [companyname] => 京滨电子装置研究开发(上海)有限公司 [contents] => [meetingdate] => 2008-11-25 [meetingtime] => 5:00-11:00 [re] => 0 ) [2] => Array ( [p_id] => 19 [city] => 0 [school] => 中国商用飞机有限责任公司 [address] => 中国商用飞机有限责任公司 [companyname] => 中国商用飞机有限责任公司 [contents] => 中国商用飞机有限责任公司 [meetingdate] => 2008-11-25 [meetingtime] => 15:00-20:00 [re] => 0 ) )[2008-11-26] => Array ( [0] => Array ( [p_id] => 23 [city] => 3 [school] => 广东外语外贸大学 [address] => 南校区图书馆多功能报告厅 [companyname] => TNT中国 [contents] => 南校区图书馆多功能报告厅 [meetingdate] => 2008-11-26 [meetingtime] => 18:00-21:00 [re] => 0 ) [1] => Array ( [p_id] => 25 [city] => 2 [school] => 上海财经大学 [address] => 红瓦楼三楼小礼堂 [companyname] => 韩国乐天公司 [contents] => 红瓦楼三楼小礼堂 [meetingdate] => 2008-11-26 [meetingtime] => 10:00-13:00 [re] => 0 ) ))但把要截取的字段 $preach[$row['curdate']][$x]['sub_companyname'] = cutstr($row['companyname'],38); 加进去就显示成上面那样了,那个[2008-11-26]里的键值不按顺序排的,如果这样:$x = 0;while($row = $db->fetch_array($result)){ $preach[$row['meetingdate']][] = $row; array_push($preach[$row['meetingdate']][$x]['sub_companyname'],cutstr($row['companyname'],38)); $x++;}就出错Warning: array_push() [function.array-push]: First argument should be an array in F:\ut\job\include\global.func.php on line 1100其实就是往$preach数组里添加新的元素,里面的键值按顺序排列。日期分组后为第一个键值 1.如果用foreach的话,并不需要考虑键值是否按顺序,如果没有特殊要求,不需要键值的顺序2.非要键值按顺序排列不可的话,把数组用foreach循环,重新排一遍就可以了。 while($row = $db->fetch_array($result)){ $row['sub_companyname'] = cutstr($row['companyname'],38); $preach[$row['curdate']][] = $row;}ksort($preach); while($row = $db->fetch_array($result)) { $preach[$row['meetingdate']][] = $row; array_push($preach[$row['meetingdate']][$x]['sub_companyname'],cutstr($row['companyname'],38)); $x++; } =>while($row = $db->fetch_array($result)) { $tmpArray = $row; $tmpArray['sub_companyname'] = cutstr($row['companyname'],38); $preach[$row['meetingdate']][] = $tmpArray; } 你的思路有点问题,为什么不将处理好的数组传给$preach呢,呵呵.换个思路,问题就解决了.呵呵. int array_push ( array &array, mixed var [, mixed ...] )第一个参数应该是个数组,array_push($preach[$row['meetingdate']][$x]['sub_companyname'],cutstr($row['companyname'],38)); LZ程序中不是。 初学php思路有点混乱,谢谢各位的指教啊。 请教mysql的问题 请问怎么获取form内input的信息? 求PHP编程高手指导 SINGLETON模式问题 数据库查询存为数组问题。 也是,看了半天文档测试,英文的调试老是不行,希望高手给个具体例子,不甚感谢,学习中!!! mysql的like或者regexp如何取得相反的结果? MYSQL里面的INT型如果我不设置长度那它默认的长度是多少? 各位兄弟帮帮忙呀?有没有这个样子的多用户日记本? php常用编程工具哪有下载?哪种比较好? 怎么测试一个虚拟主机的速度 师妹请教!哪位师哥有Ajax判断文件大小的例子!
while($row = $db->fetch_array($result))
{
$preach[$row['curdate']][] = $row;
}
数组显示是我想要的结果:
[2008-11-25] => Array
(
[0] => Array
(
[p_id] => 16
[city] => 2
[school] => 上海交通大学法国阿海珐集团(AREVA)
[address] => 光彪楼一楼多功能厅法国阿海珐集团(AREVA)法国阿海珐集团(AREVA)
[companyname] => 法国阿海珐集团(AREVA)法国阿海珐集团(AREVA)
[contents] => 光彪楼一楼多功能厅
[meetingdate] => 2008-11-25
[meetingtime] => 5:00-12:00
[re] => 0
) [1] => Array
(
[p_id] => 17
[city] => 2
[school] => 华东理工大学
[address] => 一教101
[companyname] => 京滨电子装置研究开发(上海)有限公司
[contents] =>
[meetingdate] => 2008-11-25
[meetingtime] => 5:00-11:00
[re] => 0
) [2] => Array
(
[p_id] => 19
[city] => 0
[school] => 中国商用飞机有限责任公司
[address] => 中国商用飞机有限责任公司
[companyname] => 中国商用飞机有限责任公司
[contents] => 中国商用飞机有限责任公司
[meetingdate] => 2008-11-25
[meetingtime] => 15:00-20:00
[re] => 0
)
)
[2008-11-26] => Array
(
[0] => Array
(
[p_id] => 23
[city] => 3
[school] => 广东外语外贸大学
[address] => 南校区图书馆多功能报告厅
[companyname] => TNT中国
[contents] => 南校区图书馆多功能报告厅
[meetingdate] => 2008-11-26
[meetingtime] => 18:00-21:00
[re] => 0
) [1] => Array
(
[p_id] => 25
[city] => 2
[school] => 上海财经大学
[address] => 红瓦楼三楼小礼堂
[companyname] => 韩国乐天公司
[contents] => 红瓦楼三楼小礼堂
[meetingdate] => 2008-11-26
[meetingtime] => 10:00-13:00
[re] => 0
) )
)但把要截取的字段 $preach[$row['curdate']][$x]['sub_companyname'] = cutstr($row['companyname'],38);
加进去就显示成上面那样了,那个[2008-11-26]里的键值不按顺序排的,
如果这样:
$x = 0;
while($row = $db->fetch_array($result))
{
$preach[$row['meetingdate']][] = $row;
array_push($preach[$row['meetingdate']][$x]['sub_companyname'],cutstr($row['companyname'],38));
$x++;
}
就出错Warning: array_push() [function.array-push]: First argument should be an array in F:\ut\job\include\global.func.php on line 1100其实就是往$preach数组里添加新的元素,里面的键值按顺序排列。日期分组后为第一个键值
2.非要键值按顺序排列不可的话,把数组用foreach循环,重新排一遍就可以了。
$row['sub_companyname'] = cutstr($row['companyname'],38);
$preach[$row['curdate']][] = $row;
}
ksort($preach);
{
$preach[$row['meetingdate']][] = $row;
array_push($preach[$row['meetingdate']][$x]['sub_companyname'],cutstr($row['companyname'],38));
$x++;
} =>while($row = $db->fetch_array($result))
{
$tmpArray = $row;
$tmpArray['sub_companyname'] = cutstr($row['companyname'],38);
$preach[$row['meetingdate']][] = $tmpArray;
} 你的思路有点问题,为什么不将处理好的数组传给$preach呢,呵呵.换个思路,问题就解决了.呵呵.
第一个参数应该是个数组,
array_push($preach[$row['meetingdate']][$x]['sub_companyname'],cutstr($row['companyname'],38));
LZ程序中不是。