<?php
/**
* Removes duplicate metadata entries from an array of metadata.
*
* @param array $metadata An array of metadata entries (e.g., associative arrays).
* @return array|string A deduplicated array of metadata or an error message if input is invalid.
*/
function removeDuplicateMetadata(array $metadata): array|string
{
if (!is_array($metadata)) {
return "Error: Input must be an array.";
}
$uniqueMetadata = [];
$seenKeys = []; // Keep track of keys to avoid duplicates
foreach ($metadata as $key => $value) {
if (!is_array($value)) {
return "Error: Metadata values must be arrays.";
}
// Check if the key already exists
if (!in_array($key, $seenKeys)) {
$uniqueMetadata[$key] = $value;
$seenKeys[] = $key;
}
}
return $uniqueMetadata;
}
//Example Usage (for testing)
/*
$metadata = [
['name' => 'John', 'age' => 30],
['name' => 'Jane', 'age' => 25],
['name' => 'John', 'age' => 30], // Duplicate
['name' => 'Peter', 'age' => 40],
];
$deduplicatedMetadata = removeDuplicateMetadata($metadata);
if (is_string($deduplicatedMetadata)) {
echo $deduplicatedMetadata . "\n"; // Print error message
} else {
print_r($deduplicatedMetadata);
}
*/
?>
Add your comment