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

masteringlaravel logo
Laravel Code Review

Get expert guidance in a few days with a Laravel code review

Visit Laravel Code Review

The latest

View all →
Securing Filament plugins with Plumb image

Securing Filament plugins with Plumb

Read article
LayaPHP: Self-Hosted Text Classification for PHP and Laravel image

LayaPHP: Self-Hosted Text Classification for PHP and Laravel

Read article
WhenMounted and BigInt Props in Inertia.js v3.8 image

WhenMounted and BigInt Props in Inertia.js v3.8

Read article
Postcodes for Laravel: GB Postcode Lookup and Geography Data image

Postcodes for Laravel: GB Postcode Lookup and Geography Data

Read article
Laravel 14 Adds a defaults() Method to Eloquent Models image

Laravel 14 Adds a defaults() Method to Eloquent Models

Read article
Laravel AI SDK and Laravel MCP Security Fixes: Update Now image

Laravel AI SDK and Laravel MCP Security Fixes: Update Now

Read article