社区
基础编程
帖子详情
分类信息自定义搜索url怎么处理?
tangguowei
2009-11-30 03:21:05
问题是这样的,如图
...全文
164
11
打赏
收藏
分类信息自定义搜索url怎么处理?
问题是这样的,如图
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
x1987xiaoxiao
2009-12-01
打赏
举报
回复
9楼的回复忽略吧 (0_0)!!!
x1987xiaoxiao
2009-12-01
打赏
举报
回复
运行了下,url出现二维数组的情况:
$url_arr1=array(str_replace("$$key1",$key2,$Temp_arr)); 这句,
因为你传入的str_replace("$$key1",$key2,$Temp_arr)是一个字符串,虽然你里面是以数组'type'=>$type,'price'=>$price 但是统一的就是一个字符串然后这里生产的$url_arr1就是[0]=>'type'=>$type,'price'=>$price
这样了:
解决方法(可试):
在foreach循环外申明$Temp_arr是一个数组$Temp_arr=Array();在foreach中$Temp_arr['$field']='$$field'这样来生产 这样生产的$Temp_arr就是一个数组了……(如果这样运行这后,之后的那个替换,估计要换个)
x1987xiaoxiao
2009-12-01
打赏
举报
回复
[Quote=引用 7 楼 tangguowei 的回复:]
我不清楚什么是笛卡尔集啊,我这样处理了一下
foreach(条件)
....
$Temp_arr.="'$field'=>$$field,";
}
$Temp_arr = substr($Temp_arr,0,strlen($Temp_arr)-1);//去掉最后一个,号此时$Temp_arr为
'type'=>$type,'price'=>$price
if (is_array($arr)){
foreach ($arr as $key1=>$val){
foreach($val as $key2=>$val2){
$url_arr1=array(str_replace("$$key1",$key2,$Temp_arr));
$url_arr2=array('catid'=>$catid,'areaid'=>$areaid,'page'=>$page);
$url = array_merge($url_arr1, $url_arr2);
$search[$key1][]=array('value'=>$key2,'name'=>$val2,'url'=>$url);
print_r($url);exit;
}
}
}
为什么输出的url为Array ( [0] => 'type'=>1,'price'=>$price [catid] => 13 [areaid] => [page] => 1 )
而不是:Array ([type]=>1[price]=>$price[catid] => 13 [areaid] => [page] => 1 )
[/Quote]
$search[$key1][]=array('value'=>$key2,'name'=>$val2,'url'=>$url); 设置的url指向的是一个数组了
如果输出url 肯定就是一个数组
这样整个是一个一维的数组:
$url = array_merge($url_arr1, $url_arr2);
$arr=array('value'=>$key2,'name'=>$val2);
$search[$key1][]=array_merge($arr,$url);
或是:
得到url之后,对它这个数组进行单独的操作
「已注销」
2009-11-30
打赏
举报
回复
$arr= Array(
'type' => Array (
'1' => '出售',
'2' => '求购',
),
'price' => Array (
'1' => '500元以下',
'2' => '500-1000元',
),
);
foreach ($arr as $key1=>$val){
foreach($val as $key2=>$val2){
$url=geturl(
$urlArr
);
$search[$key1][]=array('value'=>$key2,'name'=>$val2,'url'=>$url);
}
}
其中$urlArr如何处理当
$key1=type,$key2=1时,$urlArr=array('type'=>"1",'price'=>"$price")
$key1=type,$key2=2时,$urlArr=array('type'=>"2",'price'=>"$price")
$key1=price,$key2=1时,$urlArr=array('type'=>"$type",'price'=>"1")
$key1=price,$key2=2时,$urlArr=array('type'=>"$type",'price'=>"2")
以后如果再加一个区域,比如area则当
$key1=type,$key2=1时,$urlArr=array('type'=>"1",'price'=>"$price",'area'=>"$area")
...
另外还有一些固定的字段如:分类sort,时间postTime等,最后将上面处理的$urlArr数组与这些固定字段拼在一起,如当$key1=type,$key2=1时,
$urlArr=array('type'=>"1",'price'=>"$price",'sort'=>"$sort",'postTime'=>"$postTime")
写了这么多,不知道大家看明白没有,再不明白,我真的不知道如何描述了
codeyell-com
2009-11-30
打赏
举报
回复
"处理"?你的意思是指什么?
床上等您
2009-11-30
打赏
举报
回复
看不到图
xuzuning
2009-11-30
打赏
举报
回复
如果你使用了模板引擎,那么应按模板引擎的要求组装数据
如果不知道现有的数据格式如何转换为目标数据格式,请帖出两者的示例
「已注销」
2009-11-30
打赏
举报
回复
我不清楚什么是笛卡尔集啊,我这样处理了一下
foreach(条件)
....
$Temp_arr.="'$field'=>$$field,";
}
$Temp_arr = substr($Temp_arr,0,strlen($Temp_arr)-1);//去掉最后一个,号此时$Temp_arr为
'type'=>$type,'price'=>$price
if (is_array($arr)){
foreach ($arr as $key1=>$val){
foreach($val as $key2=>$val2){
$url_arr1=array(str_replace("$$key1",$key2,$Temp_arr));
$url_arr2=array('catid'=>$catid,'areaid'=>$areaid,'page'=>$page);
$url = array_merge($url_arr1, $url_arr2);
$search[$key1][]=array('value'=>$key2,'name'=>$val2,'url'=>$url);
print_r($url);exit;
}
}
}
为什么输出的url为Array ( [0] => 'type'=>1,'price'=>$price [catid] => 13 [areaid] => [page] => 1 )
而不是:Array ([type]=>1[price]=>$price[catid] => 13 [areaid] => [page] => 1 )
x1987xiaoxiao
2009-11-30
打赏
举报
回复
恩……我的想法是这样
按照楼主的思路如果是这么个url的数组的话,是不是相当于$arr这里俩个子数组进行了一个笛卡尔集呢??
「已注销」
2009-11-30
打赏
举报
回复
哦,我在程序中使用了smarty,我现在的想法是把url处理好保存在search数组中,
在模板中这样调用,比如调用价格则:(其中,price就是后台增加的价格的字段名)
{foreach from=$search.price item=price}
<a href="{$price.url}">{$price.name}</a>
{/foreach}
已经能正常输出了,只是url没有处理好
to:4楼
意思是不是点链接的时候,触发一个js过程,组合成url然后:window.location.href=url;
x1987xiaoxiao
2009-11-30
打赏
举报
回复
楼主,要达到你说的那种url的变换的,不需要都在php中处理过url之后在输出,可以再js中构造url
比如 你的输出的可选项是从
$type_arr=Array(
'1'=>'出售',
'2'=>'求购');
$price_arr=Array(
'1'=>'500元以下',
'2'=>'500-1000元');
从输出,可以点击的地方加个js的方法,触发的时候,根据选择的内容构造一个url并转向,也能达到楼主说的整个效果
而且按照楼主在3楼中所提到的意思,如果是预先设计好url,那这个应该是一个函数当中的方法,最后得到一个含有构造url的数组,应该是通过传入的值来选择, 如果不是一个函数,那就是说每页都要进行这个url的构造操作。
不过说到楼主在3楼中提及的思路,确实挺复杂。
ECSHOP全站
URL
自定义
插件
自定义
URL
链接
自定义
目录文件名伪静态
ECSHOP全站
URL
自定义
插件
自定义
URL
链接
自定义
目录文件名伪静态
dede解决seo的
自定义
文章名称的
url
问题
dede解决seo的
自定义
文章名称的
url
问题
wordpress
自定义
url
参数实现路由功能的代码示例
主要介绍了wordpress中实现路由功能的代码示例,大家可以参考用代码实现自己的路由功能
ThinkPHP新闻发布系统(前台+后台)绝对易学易用
通俗易懂的ThinkPHP文章发布系统源码(前台+后台) 主要是后台可以实现文章的非常方便的发布。 ThinkPHP框架+百度UEditor编辑器实现.具体使用方法参考ruby97的CSDN博客
custom-post-type-permalinks, 编辑
自定义
帖子类型的永久链接 !.zip
custom-post-type-permalinks, 编辑
自定义
帖子类型的永久链接 !
基础编程
21,890
社区成员
140,342
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章