從0到1學PHP(五):PHP 數組:高效存儲與處理數據

目錄

  • 一、數組的定義與分類
    • 1.1 索引數組
    • 1.2 關聯數組
    • 1.3 多維數組
  • 二、數組的基本操作
    • 2.1 數組元素的添加、刪除、修改和訪問
    • 2.2 數組指針的操作
  • 三、數組處理函數
    • 3.1 數組排序函數
    • 3.2 數組統計函數
    • 3.3 數組過濾與轉換函數


一、數組的定義與分類

在 PHP 中,數組是一種非常重要的數據結構,它允許我們在一個變量中存儲多個值,并且可以方便地對這些值進行管理和操作。數組可以分為索引數組、關聯數組和多維數組,下面我們來詳細了解它們的定義與分類。

1.1 索引數組

索引數組是使用數字索引來存儲值的數組,索引從 0 開始依次遞增。在 PHP 中,可以使用array()函數或者方括號[]來創建索引數組。例如:

// 使用array()函數創建索引數組
$fruits = array("蘋果", "香蕉", "橙子");// 使用方括號創建索引數組
$numbers = [1, 2, 3, 4, 5];

訪問索引數組中的元素時,只需使用對應的索引值即可。例如,要訪問$fruits數組中的第一個元素,可以這樣寫:

echo $fruits[0]; // 輸出:蘋果

也可以通過循環遍歷索引數組,例如使用for循環:

$fruits = array("蘋果", "香蕉", "橙子");
for ($i = 0; $i < count($fruits); $i++) {echo $fruits[$i]. "<br>";
}

或者使用foreach循環:

$fruits = array("蘋果", "香蕉", "橙子");
foreach ($fruits as $fruit) {echo $fruit. "<br>";
}

1.2 關聯數組

關聯數組與索引數組不同,它使用字符串作為索引(也稱為鍵),而不是數字。這使得我們可以通過有意義的鍵名來訪問數組中的值,提高了代碼的可讀性和維護性。在 PHP 中,定義關聯數組時使用=>符號來指定鍵值對。例如:

// 創建關聯數組
$person = array("name" => "張三","age" => 25,"city" => "北京"
);

訪問關聯數組中的元素時,使用對應的鍵名:

echo $person["name"]; // 輸出:張三
echo $person["age"]; // 輸出:25

同樣,也可以使用foreach循環遍歷關聯數組:

$person = array("name" => "張三","age" => 25,"city" => "北京"
);
foreach ($person as $key => $value) {echo $key. ": ". $value. "<br>";
}

1.3 多維數組

多維數組是指數組中包含其他數組作為元素的數組。這種結構可以用來表示更加復雜的數據,例如表格數據、樹狀結構等。最常見的多維數組是二維數組,它可以看作是一個由行和列組成的表格。例如,下面是一個二維數組,用于存儲學生的成績:

// 定義二維數組
$scores = array(array(85, 90, 78),array(92, 88, 95),array(76, 82, 89)
);

在這個二維數組中,$scores[0]表示第一行的成績,$scores[0][0]表示第一行第一列的成績(即第一個學生的第一門課成績)。訪問多維數組中的元素時,需要使用多個索引值,例如:

echo $scores[1][2]; // 輸出:95,表示第二個學生的第三門課成績

對于多維數組的遍歷,可以使用多層循環。例如,遍歷上面的$scores數組:

$scores = array(array(85, 90, 78),array(92, 88, 95),array(76, 82, 89)
);
for ($i = 0; $i < count($scores); $i++) {for ($j = 0; $j < count($scores[$i]); $j++) {echo $scores[$i][$j]. " ";}echo "<br>";
}

也可以使用foreach循環結合is_array()函數來遞歸地遍歷多維數組:

function printMultiArray($array) {foreach ($array as $value) {if (is_array($value)) {printMultiArray($value);} else {echo $value. " ";}}echo "<br>";
}$scores = array(array(85, 90, 78),array(92, 88, 95),array(76, 82, 89)
);
printMultiArray($scores);

通過上述介紹,我們對 PHP 中數組的定義與分類有了清晰的認識,這為后續學習數組的基本操作和處理函數打下了堅實的基礎。

二、數組的基本操作

在了解了數組的定義與分類后,接下來我們學習數組的基本操作,包括數組元素的添加、刪除、修改和訪問,以及數組指針的操作。這些操作是我們在使用數組時最常用的,熟練掌握它們可以讓我們更加靈活地處理數組數據。

2.1 數組元素的添加、刪除、修改和訪問

  1. 添加元素
    • 在 PHP 中,向數組添加元素有多種方法。對于索引數組,可以使用方括號[]直接添加元素,PHP 會自動為新元素分配一個合適的索引(通常是當前最大索引加 1)。例如:
$fruits = array("蘋果", "香蕉");
$fruits[] = "橙子";
print_r($fruits);

上述代碼中,我們先定義了一個包含 “蘋果” 和 “香蕉” 的$fruits數組,然后使用$fruits[] = “橙子”;向數組末尾添加了 “橙子” 這個元素,最后使用print_r()函數輸出數組內容,可以看到數組變為Array ( [0] => 蘋果 [1] => 香蕉 [2] => 橙子 )。

  • 還可以使用array_push()函數向數組末尾添加一個或多個元素。array_push()函數的第一個參數是要操作的數組,后面的參數是要添加的元素。例如:
$fruits = array("蘋果", "香蕉");
array_push($fruits, "草莓", "葡萄");
print_r($fruits);

這里通過array_push()函數向$fruits數組中添加了 “草莓” 和 “葡萄” 兩個元素,輸出的數組為Array ( [0] => 蘋果 [1] => 香蕉 [2] => 草莓 [3] => 葡萄 )。

對于關聯數組,添加元素時需要指定鍵名,通過$數組名[鍵名] = 值;的方式來添加。例如:

$person = array("name" => "張三");
$person["age"] = 25;
$person["city"] = "北京";
print_r($person);

此代碼先定義了一個關聯數組$person,只有 “name” 這個鍵值對,然后依次添加了 “age” 和 “city” 鍵值對,最終輸出的數組為Array ( [name] => 張三 [age] => 25 [city] => 北京 )。

  1. 刪除元素
    使用unset()函數可以刪除數組中的元素。unset()函數接受一個或多個參數,每個參數是要刪除的數組元素的索引或鍵。例如,刪除索引數組中的元素:
$fruits = array("蘋果", "香蕉", "橙子");
unset($fruits[1]);
print_r($fruits);

這段代碼刪除了$fruits數組中索引為 1 的元素(即 “香蕉”),輸出的數組變為Array ( [0] => 蘋果 [2] => 橙子 ),需要注意的是,使用unset()函數刪除元素后,數組的索引不會自動重新排列。

對于關聯數組,同樣使用unset()函數根據鍵來刪除元素:

$person = array("name" => "張三", "age" => 25, "city" => "北京");
unset($person["age"]);
print_r($person);

這里刪除了$person數組中 “age” 這個鍵值對,輸出結果為Array ( [name] => 張三 [city] => 北京 )。

  1. 修改元素
    直接通過索引或鍵對數組元素進行賦值,就可以修改數組中的元素。對于索引數組:
$fruits = array("蘋果", "香蕉", "橙子");
$fruits[1] = "芒果";
print_r($fruits);

上述代碼將$fruits數組中索引為 1 的元素 “香蕉” 修改為 “芒果”,輸出數組為Array ( [0] => 蘋果 [1] => 芒果 [2] => 橙子 )。

對于關聯數組:

$person = array("name" => "張三", "age" => 25, "city" => "北京");
$person["age"] = 26;
print_r($person);

此代碼將$person數組中 “age” 對應的值從 25 修改為 26,輸出結果是Array ( [name] => 張三 [age] => 26 [city] => 北京 )。

  1. 訪問元素
    通過索引或鍵來訪問數組中的元素。對于索引數組,使用索引值即可訪問對應的元素,如$fruits[0]表示訪問$fruits數組中的第一個元素。對于關聯數組,使用鍵名來訪問元素,如$person[“name”]表示訪問$person數組中 “name” 對應的元素。

2.2 數組指針的操作

PHP 數組有一個內部指針,它指向數組中的某個元素,通過一些函數可以操作這個指針,從而實現對數組元素的遍歷等操作。常見的數組指針操作函數有current()、next()、prev()、end()和reset()等。

  • current()函數:返回數組中當前指針指向的元素的值。例如:
$fruits = array("蘋果", "香蕉", "橙子");
echo current($fruits); // 輸出:蘋果

數組創建后,指針默認指向第一個元素,所以current($fruits)返回 “蘋果”。

  • next()函數:將數組的內部指針向前移動一位,并返回移動后指針指向的元素的值。如果移動后指針超出了數組的范圍,則返回false。例如:
$fruits = array("蘋果", "香蕉", "橙子");
echo current($fruits). "<br>"; // 輸出:蘋果
echo next($fruits). "<br>"; // 輸出:香蕉
echo next($fruits). "<br>"; // 輸出:橙子
echo next($fruits); // 輸出:(bool)false
  • prev()函數:與next()函數相反,將數組的內部指針向后移動一位,并返回移動后指針指向的元素的值。如果移動后指針超出了數組的范圍,則返回false。例如:
$fruits = array("蘋果", "香蕉", "橙子");
next($fruits);
next($fruits);
echo current($fruits). "<br>"; // 輸出:橙子
echo prev($fruits). "<br>"; // 輸出:香蕉
  • end()函數:將數組的內部指針移動到最后一個元素,并返回最后一個元素的值。例如:
$fruits = array("蘋果", "香蕉", "橙子");
echo end($fruits); // 輸出:橙子
  • reset()函數:將數組的內部指針重置到第一個元素,并返回第一個元素的值。在多次使用next()或prev()等函數移動指針后,如果想重新從數組開頭遍歷,可以使用reset()函數。例如:
$fruits = array("蘋果", "香蕉", "橙子");
next($fruits);
next($fruits);
echo current($fruits). "<br>"; // 輸出:橙子
reset($fruits);
echo current($fruits); // 輸出:蘋果

通過這些數組指針操作函數,我們可以靈活地遍歷數組,按照自己的需求對數組元素進行處理。

三、數組處理函數

在 PHP 中,提供了豐富的數組處理函數,這些函數可以幫助我們更高效地對數組進行各種操作。下面將介紹數組排序函數、數組統計函數以及數組過濾與轉換函數。

3.1 數組排序函數

PHP 提供了多個數組排序函數,每個函數都有其獨特的用途和特點。

  • sort () 函數:用于對索引數組進行升序排序。排序后,數組的索引會重新從 0 開始依次遞增。例如:
$numbers = array(5, 2, 8, 1, 9);
sort($numbers);
print_r($numbers);

上述代碼中,$numbers數組初始包含 5 個元素,使用sort()函數排序后,輸出結果為Array ( [0] => 1 [1] => 2 [2] => 5 [3] => 8 [4] => 9 ) ,可以看到數組元素按照從小到大的順序排列,且索引重新分配。

  • rsort () 函數:與sort()函數相反,用于對索引數組進行降序排序,排序后索引同樣會重新從 0 開始依次遞增。例如:
$numbers = array(5, 2, 8, 1, 9);
rsort($numbers);
print_r($numbers);

這里$numbers數組經過rsort()函數處理后,輸出結果為Array ( [0] => 9 [1] => 8 [2] => 5 [3] => 2 [4] => 1 ),數組元素按從大到小的順序排列,索引重新生成。

  • asort () 函數:用于對關聯數組按照值進行升序排序,排序后鍵值對的關聯關系保持不變。例如:
$person = array("name" => "張三","age" => 25,"city" => "北京"
);
asort($person);
print_r($person);

運行這段代碼,$person數組會根據值進行升序排序,輸出結果為Array ( [age] => 25 [city] => 北京 [name] => 張三 ) ,可以看到鍵值對的對應關系依然存在,只是按照值的大小重新排列了順序。

  • arsort () 函數:與asort()函數相反,對關聯數組按照值進行降序排序,同時保持鍵值對的關聯關系。例如:
$person = array("name" => "張三","age" => 25,"city" => "北京"
);
arsort($person);
print_r($person);

此時$person數組按值降序排序,輸出為Array ( [name] => 張三 [city] => 北京 [age] => 25 ) 。

  • ksort () 函數:用于對關聯數組按照鍵進行升序排序,鍵值對的關聯關系在排序后保持不變。例如:
$person = array("name" => "張三","age" => 25,"city" => "北京"
);
ksort($person);
print_r($person);

運行結果為Array ( [age] => 25 [city] => 北京 [name] => 張三 ),數組按照鍵名的字母順序(升序)進行了排序。

  • krsort () 函數:與ksort()函數相反,對關聯數組按照鍵進行降序排序,鍵值對的關聯關系保持不變。例如:
$person = array("name" => "張三","age" => 25,"city" => "北京"
);
krsort($person);
print_r($person);

輸出結果為Array ( [name] => 張三 [city] => 北京 [age] => 25 ),數組按照鍵名的字母順序(降序)進行了排序。

3.2 數組統計函數

PHP 中的數組統計函數可以幫助我們獲取數組的一些統計信息,如元素個數、最大值和最小值等。

  • count () 函數:用于計算數組中的元素個數,對于多維數組,還可以通過設置參數來遞歸計算所有元素的總數。其基本語法為int count ( mixed $array_or_countable [, int $mode = COUNT_NORMAL ] ),其中$array_or_countable是要計數的數組或實現了Countable接口的對象,$mode是可選參數,默認值COUNT_NORMAL表示只計算第一級元素,如果設置為COUNT_RECURSIVE,則遞歸計算所有元素。例如:
$fruits = array("蘋果", "香蕉", "橙子");
echo count($fruits); // 輸出:3

對于多維數組:

$nestedArray = array(array(1, 2, 3),array(4, 5),array(6)
);
echo count($nestedArray); // 輸出:3,只計算第一級元素個數
echo count($nestedArray, COUNT_RECURSIVE); // 輸出:6,遞歸計算所有元素個數
  • max () 函數:返回數組中的最大值。例如:
$numbers = array(5, 2, 8, 1, 9);
echo max($numbers); // 輸出:9

如果數組中包含字符串類型的元素,max()函數會按照字符串的字典序進行比較。例如:

$strings = array("banana", "apple", "cherry");
echo max($strings); // 輸出:cherry
  • min () 函數:與max()函數相反,返回數組中的最小值。例如:
$numbers = array(5, 2, 8, 1, 9);
echo min($numbers); // 輸出:1

同樣,對于包含字符串元素的數組,min()函數按字典序返回最小的字符串:

$strings = array("banana", "apple", "cherry");
echo min($strings); // 輸出:apple

3.3 數組過濾與轉換函數

  • array_filter () 函數:使用回調函數過濾數組中的元素。該函數會將數組中的每個元素傳遞給回調函數,如果回調函數返回true,則該元素會被保留在結果數組中;如果返回false,則該元素會被過濾掉。其語法為array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] )。例如,過濾出數組中的奇數:
$numbers = array(1, 2, 3, 4, 5);
function isOdd($number) {return $number % 2 == 1;
}
$filteredNumbers = array_filter($numbers, 'isOdd');
print_r($filteredNumbers);

上述代碼中,array_filter()函數使用isOdd回調函數對$numbers數組進行過濾,只有奇數元素被保留,輸出結果為Array ( [0] => 1 [2] => 3 [4] => 5 )。

  • array_flip () 函數:用于交換數組中的鍵和值,即原來的鍵變為值,原來的值變為鍵。需要注意的是,如果數組中有重復的值,在交換后,后面的鍵會覆蓋前面的鍵,因為鍵在數組中必須是唯一的。例如:
$fruits = array("蘋果" => "red", "香蕉" => "yellow", "橙子" => "orange");
$flippedFruits = array_flip($fruits);
print_r($flippedFruits);

運行結果為Array ( [red] => 蘋果 [yellow] => 香蕉 [orange] => 橙子 ) ,實現了鍵值的交換。如果原數組中有重復值,比如:

$colors = array("apple" => "red", "cherry" => "red");
$flippedColors = array_flip($colors);
print_r($flippedColors);

輸出結果為Array ( [red] => cherry ),因為 “red” 值重復,后面的 “cherry” 鍵覆蓋了前面的 “apple” 鍵。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/91211.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/91211.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/91211.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

vscode 字體的跟換

打開vscode 左下角輸入電腦中已經有的字體&#xff1a;有想要用的可以自己進行安裝刷新這樣就可改變了

墨者:SQL過濾字符后手工注入漏洞測試(第3題)

1. 墨者學院&#xff1a;SQL過濾字符后手工注入漏洞測試(第3題)&#x1f680; 因為練習過太多的sql注入&#xff0c;廢話不多介紹&#xff0c;我會通過圍繞手動注入和工具爆破的方式達到靶場目標&#xff0c;開練&#xff01;&#xff01;&#xff01; 2. 手工注入方式&#x1…

【Spring AI實戰】實現仿DeepSeek頁面對話機器人(支持多模態上傳)

一、前言 二、實現效果 三、代碼實現 3.1 后端代碼 3.2 前端代碼 一、前言 Spring AI詳解&#xff1a;【Spring AI詳解】開啟Java生態的智能應用開發新時代(附不同功能的Spring AI實戰項目)-CSDN博客 二、實現效果 可上傳圖片或音頻數據給大模型分析 三、代碼實現 3.1 后…

Vue 正在熱映模塊

Vue 漸進式JavaScript 框架 基于Vue2的移動端項目&#xff1a;正在熱映模塊 目錄 正在熱映 數據修改 導入axios 配置反向代理 正在熱映渲染 賦值數據 渲染列表 顯示圖片 優化列表 設置列表樣式 主演 定義過濾器 使用過濾器 主演過長處理 無主演情況處理 觀眾評…

阿里云上進行k8s集群的配置

在阿里云容器服務Kubernetes&#xff08;ACK&#xff09;中配置集群的核心步驟可分為以下六大關鍵環節&#xff0c;涵蓋架構設計到運維管理&#xff1a;1. 集群規劃與基礎配置 集群類型選擇 托管版&#xff1a;Master節點由阿里云托管&#xff08;推薦生產環境&#xff09;專有…

頁面性能優化

優化點解決方案效果雙向綁定數量過多競對設置單元格內部涉及雙向綁定的輸入組件過多&#xff0c;線上頁面最多有88個該和抽屜中的編輯表格一樣的組件&#xff0c;共計930個&#xff08;按每行最少6個來計算的&#xff09;雙向綁定的組件&#xff0c;嚴重拖累頁面性能。數據計算…

詳細說明零拷貝

詳細說明零拷貝【一】零拷貝介紹【1】說明【2】為什么需要零拷貝&#xff1f;—— 傳統數據傳輸的問題【3】零拷貝的核心優化【4】零拷貝的實現方式&#xff08;1&#xff09;mmap&#xff08;內存映射&#xff09;&#xff08;2&#xff09;sendfile&#xff08;Linux 系統調用…

docker部署自己寫的c++http服務器教程

我用的是ubuntu 22.04環境下 qt c 寫的應用程序&#xff0c;是終端程序&#xff0c;不是界面&#xff0c;然后用linuxdeployqt工具將其打包成了AppImage可執行文件&#xff0c;以上是部署前的準備工作&#xff0c;需要確保AppImage可執行文件在自己的ubuntu上可以運行才能執行以…

Caffeine 緩存庫的常用功能使用介紹

&#x1f9d1; 博主簡介&#xff1a;CSDN博客專家&#xff0c;歷代文學網&#xff08;PC端可以訪問&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移動端可微信小程序搜索“歷代文學”&#xff09;總架構師&#xff0c;15年工作經驗&#xff0c;精通Java編…

C# _列表(List<T>)_ 字典(Dictionary<TKey, TValue>)

目錄 列表&#xff08;List&#xff09;特點 創建列表 RemoveAll 刪除與之條件相匹配的數據 會返回刪除的個數 Capacity 獲取或設置列表的容量 更多方法可參照上篇文章&#xff1a;C#_ArrayList動態數組 字典&#xff08;Dictionary&#xff09;特點 定義一個字典 向字…

【實時Linux實戰系列】實時網絡控制與調度

在實時控制系統中&#xff0c;網絡調度是確保實時數據流傳輸和處理不受延遲影響的關鍵。實時網絡控制與調度技術對于工業自動化、金融交易、多媒體流等領域至關重要。通過合理設計網絡調度策略&#xff0c;可以顯著提高系統的實時性和可靠性。本文將介紹如何在實時控制系統中實…

Qwen3-Coder:介紹及使用 -- 超強AI編程助手

更多內容&#xff1a;XiaoJ的知識星球 目錄一、Qwen3-Coder模型介紹1.預訓練階段&#xff08;Pre-Training&#xff09;2.后訓練階段&#xff08;Post-Training&#xff09;1&#xff09;Scaling Code RL: Hard to Solve, Easy to Verify2&#xff09;Scaling Long-Horizon RL二…

uniapp 如果進入頁面輸入框自動聚焦,此時快速返回頁面或者跳轉到下一個頁面,輸入法頂上來的頁面出現半屏的黑屏問題。

如果進入頁面輸入框自動聚焦&#xff0c;此時快速返回頁面或者跳轉到下一個頁面&#xff0c;輸入法頂上來的頁面出現半屏的黑屏問題。輸入法出來后&#xff0c;設置了自動將頁面頂上來的配置&#xff1a;pages.json"softinputMode": "adjustResize""g…

深入了解 Kubernetes(k8s):從概念到實踐

目錄 一、k8s 核心概念 二、k8s 的優勢 三、k8s 架構組件 控制平面組件 節點組件 四、k8s docker 運行前后端分離項目的例子 1. 準備前端項目 2. 準備后端項目 3. 創建 k8s 部署配置文件 4. 部署應用到 k8s 集群 在當今云計算和容器化技術飛速發展的時代&#xff0c…

Android User版本默認用test-keys,如何改用release-keys

Android User版本 默認用test-keys&#xff0c; 如何改用release-keys 開發云 - 一站式云服務平臺 --- build/core/Makefile | 5 1 file changed, 5 insertions() diff --git a/build/core/Makefile b/build/core/Makefile index --- a/build/core/Makefile b/build/core…

從零開始學習Dify-數據庫數據可視化(五)

概述上一篇文章我們圍繞 Excel 文件展開數據可視化教學&#xff0c;逐步掌握了數據導入、圖表構建和 AI 智能分析。在實際業務環境中&#xff0c;很多數據并不是保存在表格中&#xff0c;而是存儲于數據庫系統中&#xff0c;尤其是最常見的 MySQL。本篇作為本系列的第五篇&…

使用vue2和 element-ui 做一個點餐收銀臺系統前端靜態項目

今天給大家分享一個 關于點餐收銀臺的靜態網站&#xff0c;最近一直在練習前端項目&#xff0c;就使用vue2和 element-ui 做了一個 這樣簡單的 收銀臺系統。先給大家看一下 做出來的樣子。 因為是練習項目 所以頁面功能還是比較簡單的。 使用的技術是&#xff1a; 技術棧 Vu…

Spring Boot自動配置原理深度解析

Spring Boot自動配置原理深度解析 一、自動配置核心概念 1.1 什么是自動配置 Spring Boot自動配置(Auto-Configuration)是其核心特性之一&#xff0c;能夠根據項目依賴自動配置Spring應用程序。例如&#xff1a; 當檢測到H2數據庫依賴時&#xff0c;自動配置內存數據庫當存在Sp…

關于 Apache Ignite 中 Job 調度(Job Scheduling)與沖突控制(Collision Control) 的機制說明

這段內容是關于 Apache Ignite 中 Job 調度&#xff08;Job Scheduling&#xff09;與沖突控制&#xff08;Collision Control&#xff09; 的機制說明。我來為你逐段解析&#xff0c;幫助你深入理解其原理和使用方式。&#x1f50d; 一、核心概念&#xff1a;Job 調度與 Colli…

網絡資源模板--基于Android Studio 實現的課程管理App

目錄 一、測試環境說明 二、項目簡介 三、項目演示 四、部設計詳情&#xff08;部分) 登錄頁 首頁 五、項目源碼 一、測試環境說明 電腦環境 Windows 11 編寫語言 JAVA 開發軟件 Android Studio (2020) 開發軟件只要大于等于測試版本即可(近幾年官網直接下載也可…