zoukankan      html  css  js  c++  java
  • PHP操作 二维数组模拟mysql函数

    PHP操作 二维数组模拟mysql函数
    <pre>
    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<br>';
    print_r($sa);
    echo'<br>';
    $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<br>';
    print_r($arre);
    echo'</br>';

    $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<br>';
    print_r($bb);

    echo'模拟limit直接PHParray_slice这个函数搞定<br>';


    }

    /*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;
    }
    </pre>

  • 相关阅读:
    sql random string
    ubuntu 16.04中文输入法安装
    ubuntu修改docker源
    osm3ge
    ubuntu配置环境变量 sudo gedit /etc/profile
    斐波那契数列中获取第n个数据值
    为什么redis使用单线程还能这么快?
    Redis使用规范
    redis性能提升之pipeline
    centos7 用yum安装java8
  • 原文地址:https://www.cnblogs.com/newmiracle/p/11873111.html
Copyright © 2011-2022 走看看