PHP-數組函數

來源:互聯網
上載者:User

標籤:

今天在寫一個給第三方同步資料的介面時遇到一個這種情況,我有一大坨資料,但是第三方只需要其中的幾個而已,不及思索的就開始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;    }

 

PHP-數組函數

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.