Maison > développement back-end > tutoriel php > Comment puis-je convertir un tableau en fichier CSV en PHP ?

Comment puis-je convertir un tableau en fichier CSV en PHP ?

Barbara Streisand
Libérer: 2024-11-08 00:52:03
original
633 Les gens l'ont consulté

How can I convert an array into a CSV file in PHP?

Convertir un tableau en CSV : un guide complet

CSV (Comma-Separated Values) est un format largement utilisé pour stocker des données tabulaires. La conversion d'un tableau en fichier CSV permet un transfert et une analyse faciles des données. Cet article fournit un guide étape par étape sur la façon d'effectuer cette conversion.

Le tableau

Considérez le tableau d'objets stdClass suivant :

stdClass Object
(

    [OrderList_RetrieveByContactResult] => stdClass Object
        (
            [OrderDetails] => stdClass Object
                (
                    [entityId] => 1025298
                    [orderId] => 10952
                    [... various properties ...]
                )

        )

)
Copier après la connexion

Fonction de conversion

Pour convertir le tableau en CSV, nous pouvons utiliser une fonction d'assistance qui encapsule la logique. Voici un exemple de fonction :

/**
 * Formats a line (passed as a fields  array) as CSV and returns the CSV as a string.
 * Adapted from http://us3.php.net/manual/en/function.fputcsv.php#87120
 */
function arrayToCsv( array &$fields, $delimiter = ';', $enclosure = '"', $encloseAll = false, $nullToMysqlNull = false ) {
    $delimiter_esc = preg_quote($delimiter, '/');
    $enclosure_esc = preg_quote($enclosure, '/');

    $output = array();
    foreach ( $fields as $field ) {
        if ($field === null && $nullToMysqlNull) {
            $output[] = 'NULL';
            continue;
        }

        // Enclose fields containing $delimiter, $enclosure or whitespace
        if ( $encloseAll || preg_match( "/(?:${delimiter_esc}|${enclosure_esc}|\s)/", $field ) ) {
            $output[] = $enclosure . str_replace($enclosure, $enclosure . $enclosure, $field) . $enclosure;
        }
        else {
            $output[] = $field;
        }
    }

    return implode( $delimiter, $output );
}
Copier après la connexion

Cette fonction prend un tableau, un délimiteur et des caractères de clôture comme entrées. Il traite chaque champ du tableau, en entourant les champs contenant des caractères spéciaux. Enfin, il formate les champs sous forme de chaîne CSV et les renvoie.

Application de la conversion

Pour convertir notre exemple de tableau, nous pouvons appeler la fonction arrayToCsv :

$fields = [$array->OrderList_RetrieveByContactResult->OrderDetails];
$csv = arrayToCsv($fields);
Copier après la connexion

La variable $csv contient désormais les données CSV converties. Vous pouvez l'enregistrer dans un fichier ou l'utiliser pour un traitement ultérieur.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal