• 数组实战---集合了一些常用函数


    <?php
    /**
     * json字符串转换为这种格式的思路  汽车 33013 26017 11352
     * 涉及函数
     * json_decode()对 JSON 格式的字符串进行编码
     * objarray_to_array()对象转数组
     * count()获取数组总数
     * array_values()去除键名
     * implode(' ',数组)数组转字符串
     */
    $arr = array(
        'key'=>'d7de53fb42e545fa96af5f618d623deb',
        'kws' => '1,2,3,4,5,6,7,8,9,10'
         );
    $url = 'http://api.91cha.com/index';
    $jsonData = _request_post($url,$arr);
    //解析完数组以后 是一个对象数组的形式。
    $arr = array(json_decode($jsonData));
    
    //对象转数组
    
    //调用这个函数强制转化对象为数组方便操作
    $newArr = objarray_to_array($arr);
    //让数组看起来不那么繁琐,具体定位到$newArr[0]['data']
    $twoArr = $newArr[0]['data'];
    //定义一个新数组
    $keyArr = array();
    foreach($twoArr as $k=>$v)
    {
        foreach($v as $key=>$val)
        {
            //给新数组赋键名,用新建名替换目标键名,同时产生一个新数组,$keyArr,其数组value值就是对应的数组value值
            $keyArr['name'] = $v['keyword'];
            $keyArr['baidu'] = $v['allindex'];
            $keyArr['mobile'] = $v['mobileindex'];
            $keyArr['qh360'] = $v['so360index'];
        }
        $sqlWhere = dealparam($keyArr);
        $sql = 'SELECT * FROM tb_name WHERE '.$sqlWhere;
        //echo $sql;
        echo '<br />';
    
    }
    /**
     * 对象转数组
     * @param $obj
     * @return array
     */
    function objarray_to_array($obj) {
        //定义数组
        $ret = array();
        //foreach遍历
        foreach ($obj as $key => $value) {
            //判断键值是对象还是数组
            if (gettype($value) == "array" || gettype($value) == "object"){
                //采用对象转数组函数
                $ret[$key] =  objarray_to_array($value);
            }else{
                $ret[$key] = $value;
            }
        }
        return $ret;
    }
    
    /**
     * 拼接where条件
     * */
    function dealparam($param)
    {
    
        $url = array();
        if(!empty($param)){
            foreach ($param as $k=>$v)
            {
                if($v !== '')
                {
                    $sqlWhere[] = $k.'="'.$v.'"';
    //                $sqlWhere[] = $k.'='.$v;
                }
            }
        }
        return !empty($sqlWhere) ? implode(' AND ', $sqlWhere) : '';
    }
    
    //模拟页面
    function _request_post($url = '', $post_data = array())
    {
        if ( empty ( $url ) || empty ( $post_data ))
        {
            return false;
        }
        $o = "";
        foreach ( $post_data as $k => $v )
        {
            $o .= "$k=" . urlencode ( $v ) . "&";
        }
        $post_data = substr ( $o, 0, - 1 );
        $postUrl = $url;
        $curlPost = $post_data;
        $ch = curl_init (); //初始化curl
        curl_setopt ( $ch, CURLOPT_URL, $postUrl ); //抓取指定网页
        curl_setopt ( $ch, CURLOPT_HEADER, 0 ); //设置header
        curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 ); //要求结果为字符串且输出到屏幕上
        curl_setopt ( $ch, CURLOPT_POST, 1 ); //post提交方式
        curl_setopt ( $ch, CURLOPT_POSTFIELDS, $curlPost );
        $data = curl_exec ( $ch ); //运行curl
        curl_close ( $ch );
        return $data;
    }
  • 相关阅读:
    C#使用spire.doc对word文档表格进行数据填充(主要针对word插入图像)
    FPGA学习——Xilinx Vivado 实现led流水灯详解
    Xilinx ZYNQ 7000+Vivado2015.2系列(四)之GPIO的三种方式:MIO、EMIO、AXI_GPIO
    清《己亥杂诗》
    FPGA编程语言VHDL OR Verilog
    tar解压包的时候出现错误 gzip: stdin: not in gzip format
    String和List相互转换
    vue:自定义验证form表单中的数组
    qt 数据库连接配置 qt oracle驱动自行编译配置
    不安装oracle client 客户端 Qt连接oracle qocidriver
  • 原文地址:https://www.cnblogs.com/g825482785/p/arr.html
Copyright © 2020-2023  润新知