我有一个产品分类 是2级分类的手机 --- 没有2级分类
笔记本电脑 --- 下面有 东芝,sony,IBM
数码相机 -- 佳能
存储卡 ---没有2级分类现在问题是这个2维数组怎么保存,然后需要传递给模板变量,然后模板在又foreach循环出来,当数组下面没有2级分类的时候就会报错,如果不用数组,还有没有其他的办法?
笔记本电脑 --- 下面有 东芝,sony,IBM
数码相机 -- 佳能
存储卡 ---没有2级分类现在问题是这个2维数组怎么保存,然后需要传递给模板变量,然后模板在又foreach循环出来,当数组下面没有2级分类的时候就会报错,如果不用数组,还有没有其他的办法?
$ar = array('手机' => array(), '笔记本电脑' => array('IBM', 'SONY', '东芝'), '数码相机' => '佳能', '存储卡' => array());
print_r($ar);
/*
Array
(
[手机] => Array
(
) [笔记本电脑] => Array
(
[0] => IBM
[1] => SONY
[2] => 东芝
) [数码相机] => 佳能
[存储卡] => Array
(
))*/
if($mzrui)
{
foreach($mzrui as $mzrui_name)
{
$mzrui_names[]=$mzrui_name[name];
$mzrui2=$mz_mysql->mysql_givemore("select * from mzrui_kind where tid='$mzrui_name[sid]'");
if($mzrui2)
{
foreach($mzrui2 as $mzrui_name2)
{
$mzrui_names[][]=$mzrui_name2[name];
}
}
}
}PHP 代码是这样的打印出来的数组是
Array ( [0] => 笔记本电脑 [1] => 手提电脑 [2] => 手机 [3] => Array ( [0] => NOKIA ) [4] => 非诚勿扰 [5] => Array ( [0] => 猫吃鱼 ) [6] => 东芝 )
foreach($mzrui as $mzrui_name)
{
$mzrui2=$mz_mysql->mysql_givemore("select * from mzrui_kind where tid='$mzrui_name[sid]'");
if($mzrui2)
{
foreach($mzrui2 as $mzrui_name2)
{
$mzrui_names[$mzrui_name[name]][]=$mzrui_name2[name];
}
}
if($mzrui) {
foreach($mzrui as $mzrui_name) {
$mzrui_names[]=$mzrui_name[name]; //这里的键值难道不用加引号吗?!
$mzrui2=$mz_mysql->mysql_givemore("select * from mzrui_kind where tid='$mzrui_name[sid]'");
if($mzrui2) { //报错的是这一行吧?因为上面的查询不一定有结果,但查询语句本身是执行成功的
//所以,要先知道mysql_givemore()的返回值是怎么样的,从代码来看,查询到记录时返回的是个数组
//没有符合条件的记录时呢(也就是没有子类的情况下)
foreach($mzrui2 as $mzrui_name2) {
$mzrui_names[][]=$mzrui_name2[name];
}
}
//上面的if()条件判断及foreach循环改成这样试试:
if (count($mzrui2) > 0) {
$ar = array();
foreach($mzrui2 as $v) $ar[] = $v['name'];
$mzrui_names[] = $ar;
}
}
}