You can Retrieve CSV file data as pairs by just calling the Magento\Framework\File\Csv class. A Csv.php class contains the getDataPairs() function to convert the first column as a key and the second column as the value in the array from the CSV file.
This article is helpful if you have a CSV file with only two columns and want to treat it as an array key-value pair.
Let’s assume your CSV file contains below value for the first column and a second column with comma-separated,
"Sort By","Sorting" "Homepage","home" "cc_type","Credit Card type" "Shopping Options","Shop By"
We need to convert it into an array pair using Magento 2.
<?php declare(strict_types=1); namespace Rbj\CsvConvert\Model; use Magento\Framework\Exception\FileSystemException; use Magento\Framework\File\Csv; use Magento\Framework\Filesystem\Driver\File; class CsvToArray { public function __construct( private readonly File $fileDriver, private readonly Csv $csvParser ) { } /** * Retrieve data from file * * @return string[] * @throws FileSystemException */ public function getFileData(): array { $data = []; $file = '/var/www/html/magento246/var/import/en_US.csv'; // ABSOLUTE FILE PATH if ($this->fileDriver->isExists($file)) { $this->csvParser->setDelimiter(','); $data = $this->csvParser->getDataPairs($file); } return $data; } }
Output:
Array ( [Sort By] => Sorting [Homepage] => home [cc_type] => Credit Card type [Shopping Options] => Shop By )