首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

ThinkPHP 二維陣列轉一維陣列適用標籤的三種方法總結

     編輯:PHP 綜合知識

方法一:自訂函式 arr1tag

$projectList = arr1tag($projectList, array('', '請選擇'), 'project_name');

// $list 為傳入的二維陣列,$default 為預設值,$k 為指定欄位
function arr1tag($list, $default = '', $k = '') {
    $tmp = '';
    if (is_array($list)) {
        if (is_array($default)) {
            $tmp[$default[0]] = $default[1];
        }
        foreach ($list as $k1 => $v1) {
            $tmp[$k1 + 1] = $v1[$k];
        }
    }
    return $tmp;
}

方法二:自訂函式 arr2tag(支援多欄位映射)

$projectList = arr2tag($projectList, array('', '請選擇'), '');

// 根據陣列下標取得對應值
function array_index2val($array, $index = 0) {
    $value = '';
    if (is_array($array)) {
        $i = 0;
        foreach ($array as $val) {
            if ($i === $index) {
                $value = $val;
                break;
            }
            $i++;
        }
    }
    return $value;
}

// 將資料庫查出的陣列轉換為模板標籤可用陣列
function arr2tag($arr, $default = NULL, $K = NULL) {
    $tmp = '';
    if (is_array($arr)) {
        if (is_array($default)) {
            $tmp[$default[0]] = $default[1];
            if ($type == 1) {
                $tmp[$default[2]] = $default[3];
            }
        }
        foreach ($arr as $key => $val) {
            if (is_array($K)) {
                $tmp[$val[$K[0]]] = $val[$K[1]];
            } else {
                $tmp[array_index2val($val, 0)] = array_index2val($val, 1);
            }
        }
    }
    return $tmp;
}

方法三:直接使用 getField 取得鍵值對陣列(最適合 select 下拉選單)

$this->where($where)->getField('id,name');

輸出結果為:

array(
    'id' => 'name',
)

希望本文對大家的 ThinkPHP 框架程式設計有所幫助。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved