Maison  >  Article  >  développement back-end  >  Comment convertir une table php en tableau bidimensionnel

Comment convertir une table php en tableau bidimensionnel

PHPz
PHPzoriginal
2023-04-20 09:08:01642parcourir

En PHP, les tableaux sont l'un des formats de données courants. Nous devons généralement traiter les données dans les tableaux, comme le filtrage, le tri, etc. À ce stade, convertir la table en tableau bidimensionnel est un bon choix, car les tableaux sont l’une des structures de données les plus flexibles et efficaces de PHP.

Alors, comment convertir une table en tableau bidimensionnel en PHP ? Présentons-le en détail ci-dessous.

  1. Utilisez la fonction intégrée PHP fgetcsv() pour analyser les tableaux au format CSV

Les tableaux au format CSV (Comma-Separated Values) séparent chaque ligne par des virgules et terminent chaque ligne par un caractère de nouvelle ligne. Nous pouvons utiliser la fonction intégrée de PHP fgetcsv() pour lire chaque ligne de données de la table CSV et la convertir sous forme de tableau. Voici un exemple de code simple :

$handle = fopen("data.csv", "r");
$data = [];
while (($row = fgetcsv($handle)) !== false) {
    $data[] = $row;
}
fclose($handle);

Dans le code ci-dessus, le fichier source de données est d'abord ouvert via la fonction fopen(), puis les données de la table dans le fichier source de données sont lues ligne par ligne via la boucle while. Chaque ligne est analysée à l'aide de la fonction fgetcsv() et les données analysées sont stockées dans le tableau $data sous la forme d'un tableau. Fermez enfin le fichier source de données.

  1. Utilisez la bibliothèque PHPExcel pour analyser des tableaux au format Excel

Si vous devez traiter des tableaux au format Excel, vous pouvez utiliser la bibliothèque PHPExcel pour convertir des tableaux en tableaux bidimensionnels. La bibliothèque PHPExcel est une bibliothèque de classes PHP open source qui peut exploiter une variété de formats de feuilles de calcul, tels qu'Excel, CSV, etc.

Ce qui suit est un exemple de code simple :

require_once 'PHPExcel/IOFactory.php';
$excel = PHPExcel_IOFactory::load("data.xlsx");
$data = array();
$sheet = $excel->getActiveSheet();
foreach ($sheet->getRowIterator() as $rowKey => $row) {
    $cellIterator = $row->getCellIterator();
    $cellIterator->setIterateOnlyExistingCells(false);
    $temp = array();
    foreach ($cellIterator as $cellKey => $cell) {
        $temp[] = $cell->getValue();
    }
    $data[] = $temp;
}

Dans le code ci-dessus, introduisez d'abord la bibliothèque PHPExcel, chargez le fichier source de données Excel et utilisez la fonction getRowIterator() pour obtenir les données de chaque ligne. Utilisez ensuite la fonction getCellIterator() pour obtenir les données de chaque cellule de chaque ligne. Enfin, chaque ligne de données est stockée dans un tableau bidimensionnel pour le traitement et les opérations de données ultérieurs. getRowIterator()函数来获取每一行的数据,然后使用getCellIterator()函数获取每一行中的每个单元格的数据。最后,将每行数据存储到一个二维数组中,以便后续进行数据处理和操作。

  1. 数据格式转换函数

除了以上两种方式,我们也可以使用自定义的数据转换函数来完成表格到二维数组的转化。这种方式需要根据表格格式的不同进行不同的处理,比较繁琐,但是可以灵活控制数据格式转换的过程。下面是一个简单的示例代码:

function table2array($table, $headerIndex = 0, $skipEmptyRow = true, $intval = true)
{
    $rows = explode("\n", $table);
    $header = array();
    $data = array();
    foreach ($rows as $key => $row) {
        if ($skipEmptyRow && trim($row) == '') {
            continue;
        }
        if ($headerIndex == $key) {
            $header = explode("\t", $row);
            continue;
        }
        $cols = explode("\t", $row);
        $rowData = array();
        foreach ($cols as $col) {
            if ($intval && is_numeric($col)) {
                $rowData[] = intval($col);
            } else {
                $rowData[] = $col;
            }
        }
        $data[] = array_combine($header, $rowData);
    }
    return $data;
}

在上述代码中,我们通过自定义函数,将表格数据转化为二维数组。函数参数包括:

  • $table:表格数据,格式为字符串。
  • $headerIndex:表头所在行的索引,默认为0。
  • $skipEmptyRow:是否忽略空行,默认为true。
  • $intval:是否将数字转化为整型,默认为true。

在函数内部,首先使用explode()

    Fonction de conversion de format de données

    En plus des deux méthodes ci-dessus, nous pouvons également utiliser des fonctions de conversion de données personnalisées pour terminer la conversion des tableaux en tableaux bidimensionnels. Cette méthode nécessite un traitement différent selon les différents formats de table, ce qui est relativement lourd, mais elle permet de contrôler de manière flexible le processus de conversion du format de données. Voici un exemple de code simple :

    rrreee🎜Dans le code ci-dessus, nous convertissons les données du tableau en un tableau bidimensionnel via une fonction personnalisée. Les paramètres de la fonction incluent : 🎜
    🎜$table : données tabulaires, le format est une chaîne. 🎜🎜$headerIndex : L'index de la ligne où se trouve l'en-tête du tableau, la valeur par défaut est 0. 🎜🎜$skipEmptyRow : s'il faut ignorer les lignes vides, la valeur par défaut est true. 🎜🎜$intval : s'il faut convertir des nombres en entiers, la valeur par défaut est vraie. 🎜
🎜Dans la fonction, utilisez d'abord la fonction explode() pour diviser la chaîne sous forme de tableau en fonction du délimiteur spécifié, puis convertissez et assemblez le type de données. Enfin, chaque ligne de données est stockée dans le tableau $data sous la forme d'un tableau associatif, et ce tableau bidimensionnel est renvoyé. 🎜🎜Résumé🎜🎜Cet article présente trois façons courantes de convertir des tableaux en tableaux bidimensionnels. Parmi elles, la fonction fgetcsv() convient au format CSV, la bibliothèque PHPExcel convient au format Excel et la fonction de conversion de données personnalisée convient aux tableaux dans d'autres formats. Dans le développement réel, nous pouvons choisir de manière flexible la méthode adaptée à nos propres scénarios selon nos besoins. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn