十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
array_diff_assoc() 函数用于比较两个(或更多个)数组的键名和键值 ,并返回差集。
目前创新互联公司已为超过千家的企业提供了网站建设、域名、雅安服务器托管、绵阳服务器托管、企业网站设计、睢宁县网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
array_diff() 函数返回两个数组的差集数组。该数组包括了所有在被比较的数组中,但是不在任何其他参数数组中的键值。
php按条件筛选商品的功能,还是比较简单的。
其实就是根据不同的条件组成SQL查询条件,从数据库里查出不同的商品出来。
举个例子:
用户可以按价格范围、按品牌、按商品名称这几项来综合查询。
那么,在用户选择了上面这些查询条件后(可能这3个条件都设置了,也可能只设置了其中2个),提交到服务器端,服务端程序收到用户的查询条件,开始组装SQL查询语句,最后执行组装好的SQL查询语句,返回结果给用户。
代码举例:
用户提交的查询:
price='0-1000'; //按价格范围0-1000元查询
brandid=20; //要求品牌必须是ID号为20的这个(假设这个ID号为20的品牌,名字叫”西部数据")
productname='绿盘'; //商品名称只设置了2个字以做模糊查询
用户点了查询按钮后,根据程序的不同,可能是get方式也可能是post方式发送查询请求,现假设为post方式。
然后在服务器端程序中,收到用户的查询请求:
$price=$_POST['price'];
$price_arr=explode('-',$price); //这里是把价格范围按-号拆散成数组,方便在组装SQL查询语句时用。
$brandid=$_POST['brandid'];
$productname=$_POST['productname'];
当然,上面的数据获取后,还要进行相应的安全方面的检查与处理,这里先略过。
接下来,开始组装SQL查询语句:
$sqlexp='';
//下面开始组根据用户设置的查询条件进行SQL查询条件的组装
if(!empty($price)) {
$sqlexp.=' and (price='.$price_arr[0].' and price='.$price_arr[1];
}
if(!empty($brandid)) {
$sqlexp.=' and brandid='.$brandid;
}
if(!empty($productname)) {
$sqlexp.=" and instr(productname,'$productname')0";
}
//下面执行SQL查询
$result=mysql_query("select * from product where state=1 ".$sqlexp);
在上面的查询完成后,把查询结果返回给用户,就完成了用户按条件筛选商品的功能。
第一个方法:新建一个空的数组,再循环该数组,如果distance10000,就压入新建的数组中。
第二个方法:使用array_filter()方法,
?php
$array = array(
array('id' = 1, 'distance' = 131),
array('id' = 2, 'distance' = 13100),
array('id' = 3, 'distance' = 13231),
);
function filterDistance($arr)
{
return($arr['distance'] 10000);
}
$array = array_filter($array, "filterDistance");
var_dump($array);
?
用file把文件以数组的形式取出来,遍历数组元素,然后用strpos匹配,如果存在aa就unset这个数组元素,最后再将数组转化成字符串,写进文件,代码如下:
?
$file_arr = file("a.txt",FILE_IGNORE_NEW_LINES);
foreach($file_arr as $key = $value){
if(strpos($value,"aa") !== FALSE){
unset($file_arr[$key]);
}
}
$newfile = implode("\n",$file_arr);
file_put_contents("a.txt",$newfile);
?
?php
$a = array(
'BL001'=array('A14257','B17548'),
'CDF002'=array('A14257','C48751'),
'FGE453'=array('DF5533','GR6445','GH5544'),
'GEN001'=array('NT7532','DE9342','C48751'),
);
$b = array('A14257','E453T4','Y64344','FG4809','C48751','H4443R');
foreach($a as $k=$v){
$t = array_intersect ($v, $b);
if($t){
$c[$k] = $t;
}
}
print_r($c);
?