<?php
/**
* Flattens nested cookie structures.
*
* @param array $cookies An array of cookies, where each cookie is an associative array.
* @return array A flattened array of cookies. Returns an empty array on failure.
*/
function flattenCookies(array $cookies): array
{
$flattened = [];
foreach ($cookies as $cookie) {
if (is_array($cookie)) {
foreach ($cookie as $key => $value) {
if (is_array($value)) {
// Recursively flatten nested arrays
$flattened[$key] = flattenCookies([$value]);
} else {
$flattened[$key] = $value;
}
}
} else {
// Handle non-array cookie entries gracefully (e.g., skip or log)
error_log("Invalid cookie entry: " . var_export($cookie, true)); // Log the error
}
}
return $flattened;
}
// Example Usage (for testing)
if (isset($_COOKIE['myCookie'])) {
$cookies = $_COOKIE; // Get all cookies
$flattenedCookies = flattenCookies($cookies);
if (!empty($flattenedCookies)) {
print_r($flattenedCookies);
} else {
echo "No cookies found or flattening failed.\n";
}
} else {
echo "No cookies found.\n";
}
?>
Add your comment