<?php
/**
* Merges user datasets for quick fixes with basic input validation.
*
* @param array $datasets An array of user datasets. Each dataset is an array of user information.
* @return array A merged array of user datasets, or an error message if validation fails.
*/
function mergeUserDatasets(array $datasets): array|string
{
$mergedData = [];
foreach ($datasets as $dataset) {
// Basic validation: Check if the dataset is an array
if (!is_array($dataset)) {
return "Error: Dataset must be an array.";
}
foreach ($dataset as $user) {
// Basic validation: Check if the user is an associative array
if (!is_array($user)) {
return "Error: User data must be an associative array.";
}
// Validate required fields (e.g., 'id', 'name', 'email')
if (!isset($user['id']) || !isset($user['name']) || !isset($user['email'])) {
return "Error: Missing required fields (id, name, email).";
}
// Sanitize input (basic example)
$user['name'] = htmlspecialchars(trim($user['name']));
$user['email'] = filter_var($user['email'], FILTER_SANITIZE_EMAIL);
$user['id'] = intval($user['id']); //Ensure id is an integer
$mergedData[] = $user;
}
}
return $mergedData;
}
// Example Usage:
/*
$dataset1 = [
['id' => 1, 'name' => 'John Doe', 'email' => 'john.doe@example.com'],
['id' => 2, 'name' => 'Jane Smith', 'email' => 'jane.smith@example.com'],
];
$dataset2 = [
['id' => 3, 'name' => 'Peter Jones', 'email' => 'peter.jones@example.com'],
];
$mergedDatasets = mergeUserDatasets([$dataset1, $dataset2]);
if (is_string($mergedDatasets)) {
echo $mergedDatasets . "\n"; // Output error message
} else {
print_r($mergedDatasets); // Output merged data
}
*/
?>
Add your comment