首頁>>技術前沿>>網站優化及SEO
PHP如何將二維數組轉換成一維的?
作者:西安網站建設 | 原創 來源:西安軟件開發公司 | 時間:2018年1月10日| 點擊:0次 | 【評論】

PHP如何將二維數組轉換成一維的?

 

在使用php時候,我們經常要進行sql查詢,而從數據庫查詢出來的往往是這個結構的:

Array

(

    [0] => Array (

            [score] => 100

        )

    [1] => Array (

            [score] => 98    

   )

    [2] => Array (

            [score] => 70

        )

    [3] => Array (

            [score] => 86

        )

)

這時候我們需要取出其中的id ,如果使用for循環或者foreach需要兩層,這種操作未免有些麻煩,這時候我們可以用array_column()這個函數,array_column接受兩個參數,第一是需要轉換的二維數組,第二個是想要保留的鍵名,比如我們需要的結果是這樣的:

Array

(

[0] =>  100

[1]  =>98      

[2]   =>70  

[3]  =>86  

)

只需要array_column($arr,”score”)就可以了,但是有個問題。這個函數只支持php版本在5.5以上的,如果用戶的php版本太低怎么辦的,這里有一個自定義的函數,是模擬這個函數的功能,僅供參考:

//二維轉一維


function i_array_column($input, $columnKey, $indexKey = null) {

$columnKeyIsNumber = (is_numeric($columnKey)) ? true : false;
        $indexKeyIsNull = (is_null($indexKey)) ? true : false;
        $indexKeyIsNumber = (is_numeric($indexKey)) ? true : false;
        $result = array();
        foreach ((array) $input as $key => $row) {
            if ($columnKeyIsNumber) {
                $tmp = array_slice($row, $columnKey, 1);
                $tmp = (is_array($tmp) && !empty($tmp)) ? current($tmp) : null;
            } else {
                $tmp = isset($row[$columnKey]) ? $row[$columnKey] : null;
            }
            if (!$indexKeyIsNull) {
                if ($indexKeyIsNumber) {
                    $key = array_slice($row, $indexKey, 1);
                    $key = (is_array($key) && !empty($key)) ? current($key) : null;
                    $key = is_null($key) ? 0 : $key;
                } else {
                    $key = isset($row[$indexKey]) ? $row[$indexKey] : 0;
                }
            }
            $result[$key] = $tmp;
        }
        return $result;

}

 

此內容DOC下載 此內容PDF下載

【全文完】
關鍵詞標簽: PHP二維數組 
0 ([$-頂稿人數-$])
0 ([$-踩稿人數-$])

版權聲明:

1、西安弈聰網站內容中凡注明“來源:XXX(非西安弈聰網站)”的作品,轉載自其它媒體,轉載目的在于傳遞更多信息,其中涉及的網站建設,網站優化,百度關鍵詞優化,西安軟件開發等技術細節并不代表本站贊同支持其觀點,并不對其真實性負責。對于署名“西安弈聰”的作品系本站版權所有,任何人轉載請署名來源,否則西安弈聰將追究其相關法律責任。

2、本站內容中未聲明為“原創”的內容可能源自其它網站,但并不代表本站支持其觀點,對此帶來的法律糾紛及其它責任與我方無關。如果此內容侵犯了您的權益,請聯系我方進行刪除。

看av