Laravel Tutorials

Extract Arrays from Any Data Type with Laravel's Arr::from Method

Published
Extract Arrays from Any Data Type with Laravel's Arr::from Method image

Laravel's new Arr::from method provides a unified approach to convert collections, objects, and other structures into arrays, handling various input types intelligently.

Convert different data types to arrays:

use Illuminate\Support\Arr;
 
// From collections
Arr::from(collect(['status' => 'active'])); // ['status' => 'active']
 
// From Jsonable objects
Arr::from($jsonable); // Decodes via Jsonable interface
 
// From Arrayable objects
Arr::from($arrayable); // Returns via toArray() method

Here's how you might use this in a configuration manager:

class ConfigurationManager
{
public function processSettings($settings)
{
$array = Arr::from($settings);
 
return $this->validateSettings($array);
}
 
public function combineConfigurations(...$configs)
{
return collect($configs)
->map(fn($config) => Arr::from($config))
->reduce(fn($carry, $item) => array_merge($carry, $item), []);
}
 
public function sanitizeAndStore($configuration, array $schema)
{
$data = Arr::from($configuration);
 
$validator = Validator::make($data, $schema);
 
if ($validator->fails()) {
throw new ValidationException($validator);
}
 
return $data;
}
}
 
$manager = new ConfigurationManager();
 
$result = $manager->processSettings(collect(['cache' => 'redis']));
$combined = $manager->combineConfigurations(
collect(['database' => 'mysql']),
new DatabaseConfig(),
$cacheSettings
);

The Arr::from method provides a consistent interface for array extraction, eliminating the need to check data types or call different methods based on the input structure.

Harris Raftopoulos photo

Senior Software Engineer • Staff & Educator @ Laravel News • Co-organizer @ Laravel Greece Meetup

Sponsored

serpapi logo
SerpApi

The Web Search API for Your LLM and AI Applications

Visit SerpApi

The latest

View all →
NativePHP v4: Build Native iOS and Android UI in Blade image

NativePHP v4: Build Native iOS and Android UI in Blade

Read article
Laravel Lock: Distributed Locks for Models and Routes image

Laravel Lock: Distributed Locks for Models and Routes

Read article
Laravel Image Responses: Serve Resized Images From Routes image

Laravel Image Responses: Serve Resized Images From Routes

Read article
Pause All Laravel Queues During a Deploy image

Pause All Laravel Queues During a Deploy

Read article
Laravel Terminal UI for the artisan dev Command image

Laravel Terminal UI for the artisan dev Command

Read article
Pause All Queues and a New artisan dev UI in Laravel 13.25 image

Pause All Queues and a New artisan dev UI in Laravel 13.25

Read article