PHP操作 二维数组模拟mysql函数

本文介绍如何使用PHP操作二维数组来模拟MySQL的where筛选、order by排序、group by分组等功能,提供具体实现代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PHP操作 二维数组模拟mysql函数
public function monimysqltest(){
       $testarray=array(
           array('ss'=>'1','dd'=>'11'),
           array('ss'=>'2','dd'=>'22'),
           array('ss'=>'3','dd'=>'33'),
           array('ss'=>'4','dd'=>'44'),
       );
        $sa=$this->arrayfilter($testarray,'ss',array(3,4));
        echo'模拟where
'; print_r($sa); echo'
'; $array[] = array('id'=>1,'price'=>50); $array[] = array('id'=>2,'price'=>70); $array[] = array('id'=>3,'price'=>50); $array[] = array('id'=>4,'price'=>20); $arre=$this->arraysort($array,'price',SORT_DESC); echo'模拟orderby
'; print_r($arre); echo'
'; $aa = array( array('id' => 123, 'name' => '张三'), array('id' => 123, 'name' => '李四'), array('id' => 124, 'name' => '王五'), array('id' => 125, 'name' => '赵六'), array('id' => 126, 'name' => '赵六') ); $key = 'id'; $bb=$this->assoc_unique($aa, $key); echo'模拟groupby
'; print_r($bb); echo'模拟limit直接PHParray_slice这个函数搞定
'; } /*PHP模仿mysql where筛选*/ function arrayfilter($arr,$key,$val){ $list=array(); foreach ($arr as $k=>$v){ foreach ($val as $k1=>$v1){ if($v[$key]==$v1){ $list[]=$v; } } } return $list; } /*PHP二维排序排序*/ function arraysort($arr,$key1,$paixu){ foreach ($arr as $key=>$value){ $price[$key] = $value[$key1]; } array_multisort($price,$paixu,$arr); return $arr; } //模拟groupby function assoc_unique($arr, $key) { $arr1=$arr; $tmp_arr = array(); foreach ($arr as $k => $v) { if (in_array($v[$key], $tmp_arr)) {//搜索$v[$key]是否在$tmp_arr数组中存在,若存在返回true unset($arr[$k]); } else { $tmp_arr[] = $v[$key]; } } foreach ($arr as $k=>$v){ $arr[$k]['lists']=$this->arrayfilter($arr1,$key,array($v[$key])); } return $arr; }


查看原文:http://newmiracle.cn/?p=652
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值