How can PHP functions like preg_match_all() or preg_replace() be utilized to process and manipulate CSV data with complex variable structures?

When dealing with CSV data that has complex variable structures, PHP functions like preg_match_all() and preg_replace() can be utilized to process and manipulate the data effectively. These functions can be used to extract specific patterns or values from the CSV data, as well as replace or modify them as needed.

// Sample CSV data with complex variable structures
$csvData = "John,Doe,30,New York,USA;Jane,Smith,25,Los Angeles,USA|";

// Extracting data using preg_match_all()
preg_match_all('/([A-Za-z]+),([A-Za-z]+),(\d+),([A-Za-z\s]+),([A-Za-z]+)/', $csvData, $matches, PREG_SET_ORDER);

foreach ($matches as $match) {
    $firstName = $match[1];
    $lastName = $match[2];
    $age = $match[3];
    $city = $match[4];
    $country = $match[5];
    
    // Processing extracted data
    // Perform operations or manipulate the data as needed
    echo "Name: $firstName $lastName, Age: $age, Location: $city, $country\n";
}

// Replacing data using preg_replace()
$updatedCsvData = preg_replace('/(\d{2}),(\d{2}),(\d{4})/', '$3-$1-$2', $csvData);

echo "Updated CSV data: $updatedCsvData\n";