In the provided PHP code snippet, what specific functions and methods are being used to manipulate arrays and retrieve data, and are there alternative approaches that could achieve the same result more efficiently?

The provided PHP code snippet is using a combination of array functions like array_filter, array_map, and array_values to manipulate an array and retrieve specific data. While these functions are effective, using a foreach loop could potentially achieve the same result more efficiently in terms of readability and performance.

// Original code snippet
$data = [10, 20, 30, 40, 50];

// Filter out values less than 30
$data = array_filter($data, function($value) {
    return $value >= 30;
});

// Double each value
$data = array_map(function($value) {
    return $value * 2;
}, $data);

// Reset array keys
$data = array_values($data);

print_r($data);
```

```php
// Improved code snippet using foreach loop
$data = [10, 20, 30, 40, 50];
$newData = [];

foreach ($data as $value) {
    if ($value >= 30) {
        $newData[] = $value * 2;
    }
}

print_r($newData);