zoukankan      html  css  js  c++  java
  • PHP-数组函数

    今天在写一个给第三方同步数据的接口时遇到一个这种情况,我有一大坨数据,但是第三方只需要其中的几个而已,不及思索的就开始foreach

    $ret = array();
    foreach ($needParams as $pk) {
        if (isset($params[$pk])) {
            $ret[$pk] = $params[$pk];
        }
    }

    由于还需要处理一些特殊参数,看着很不舒服

    想了想php数组函数是很强大的,于是改成

    $needkey = array('uid', 'cuid');
    $params = array('uid' => 123, 'cuid' => 1234567, 'other' => '...');
    $ret = array_intersect_key($params, array_flip($needkey));

    改成

        /**
         * _packParams
         * 
         * @desc 根据配置从公共参数中摘取传递参数
         */
        private function _packParams($params, $needKey) {
            $ret = array_intersect_key($params, $needKey);
            //个别参数特殊处理
            if (isset($ret['uid'])) {
                $ret['cuid'] = $ret['uid'];
                unset($ret['uid']);
            }
            if (isset($needKey['puid'])) {
                $passSrv = $this->getInstance('Util_Passport');
                $uid = $passSrv->getUidFromCookie($params['cookie']);
                $ret['uid'] = null === $uid ? '' : $uid;
            }
            return $ret;
        }
  • 相关阅读:
    《Java技术》第一次作业
    第十一次作业
    第十次作业
    第九次作业。
    第八次作业
    第七次作业
    第六次作业
    第五次作业。
    《Java技术》第三次作业--面向对象——继承、抽象类、接口
    《Java技术》第二次作业--面向对象基础
  • 原文地址:https://www.cnblogs.com/bai-jimmy/p/4430670.html
Copyright © 2011-2022 走看看