首頁 > 後端開發 > PHP問題 > php怎麼把表格轉換成數組

php怎麼把表格轉換成數組

PHPz
發布: 2023-04-19 13:47:01
原創
606 人瀏覽過

在PHP語言中,想要將表格轉換為陣列十分常見。通常情況下,我們需要處理大量的數據,並在程式碼中讀取和操作,這時候將表格轉換成數組將大大方便我們進行數據處理和操作。

本文旨在介紹在PHP中如何將表格轉換為數組,幫助PHP愛好者輕鬆處理大量的資料。

I. CSV表格轉換為陣列

首先,CSV(Comma-Separated Values)是一種非常常見的表格形式,它可以用各種工俱生成,並且容易處理。 CSV表格只需要用逗號隔開每一列,並使用回車符號分割每一行,以便於讀取和操作。

以下是將CSV表格轉換成陣列的方法:

  1. 開啟CSV文件,讀入資料

以下範例中,我們將用fgets ()函數讀取CSV檔案的內容,並將其逐行儲存到陣列$lines中。

$csvFile = 'test.csv';

#$lines = [];
if (($handle = fopen($csvFile, "r ")) !== FALSE) {

while (($data = fgets($handle)) !== FALSE) {
    $lines[] = $data;
}
fclose($handle);
登入後複製

}

?>

  1. 格式化CSV資料並轉換為陣列

#接下來,我們將使用循環遍歷$lines數組,並用explode()函數將每一行資料按照逗號切分成一個新數組,最終得到一個二維數組$csvData。你可以使用count()函數來取得$csvData數組中的行數和列數。

$csvFile = 'test.csv';
$lines = [];
if (($handle = fopen($csvFile, "r")) !== FALSE) {

while (($data = fgets($handle)) !== FALSE) {
    $lines[] = $data;
}
fclose($handle);

$csvData = [];
foreach ($lines as $line) {
    $csvData[] = str_getcsv($line);
}
登入後複製

}

?>

  1. #輸出CSV資料

現在,你可以使用var_dump ()函數在瀏覽器中看到$csvData數組中的資料。

$csvFile = 'test.csv';
$lines = [];
if (($handle = fopen($csvFile, "r")) !== FALSE) {

while (($data = fgets($handle)) !== FALSE) {
    $lines[] = $data;
}
fclose($handle);

$csvData = [];
foreach ($lines as $line) {
    $csvData[] = str_getcsv($line);
}
var_dump($csvData);
登入後複製

}

?>

#II. Excel表格轉成陣列

當我們不是使用CSV格式時,可以更簡單地將Excel表格轉換為陣列類型。如下:

  1. 安裝PHPExcel插件

我們可以從PHPEXCEL的官網上下載這個插件,並將它解壓縮到專案目錄。

require_once 'Classes/PHPExcel.php';
?>

    ##讀入Excel檔案
# PHPExcel透過PHPExcel_IOFactory物件讀取Excel檔案。使用PHPExcel_IOFactory時,需要一個檔案讀取器來開啟Excel檔案。我們需要上傳PHP版本在5.3以上。

require_once 'Classes/PHPExcel.php';
$excel = PHPExcel_IOFactory::load('test.xlsx');
?>
    #將Excel資料轉換為陣列
現在我們已經成功地將Excel檔案讀入到$excel物件中,接下來我們可以轉換為包含資料的陣列。首先選取我們需要的單元格,並使用PHPExcel_Cell類別中的getValue()方法來取得其值。

require_once 'Classes/PHPExcel.php';
$excel = PHPExcel_IOFactory::load('test.xlsx');
$sheet = $excel-> ;getActiveSheet();

$rows = [];

foreach ($sheet->getRowIterator() as $row) {

$item = [];
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);

foreach ($cellIterator as $cell) {
    $item[] = $cell->getValue();
}

$rows[] = $item;
登入後複製
登入後複製
#}

?>

    輸出Excel資料
最後,你可以使用var_dump()函數在瀏覽器中查看$rows陣列中的資料。

require_once 'Classes/PHPExcel.php';
$excel = PHPExcel_IOFactory::load('test.xlsx');
$sheet = $excel-> ;getActiveSheet();

$rows = [];

foreach ($sheet->getRowIterator() as $row) {

$item = [];
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);

foreach ($cellIterator as $cell) {
    $item[] = $cell->getValue();
}

$rows[] = $item;
登入後複製
登入後複製
#}

var_dump ($rows);

?>

總結

透過上述方法,可以將不同格式的表格資料快速轉換為PHP陣列類型。這種方法尤其適用於處理大量的數據,可以使數據的讀取和處理變得更有效率和簡單。所以,這是很重要的技能,值得學習與掌握。

以上是php怎麼把表格轉換成數組的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板