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

tinkerwell logo
Tinkerwell

Enjoy coding and debugging in an editor designed for fast feedback and quick iterations. It's like a shell for your application – but with multi-line editing, code completion, and more.

Visit Tinkerwell

The latest

View all →
CPX: The Composer Package Executor for PHP image

CPX: The Composer Package Executor for PHP

Read article
Laravel AI SDK Adds Human-in-the-Loop Tool Approval image

Laravel AI SDK Adds Human-in-the-Loop Tool Approval

Read article
Pest 5 Released With Test Impact Analysis, Agent Verification, and Evals image

Pest 5 Released With Test Impact Analysis, Agent Verification, and Evals

Read article
Queue-SQL: Run Mass Deletes and Updates Across Parallel Queue Jobs image

Queue-SQL: Run Mass Deletes and Updates Across Parallel Queue Jobs

Read article
Blade Formatting in Laravel Pint image

Blade Formatting in Laravel Pint

Read article
Inertia DevTools Is Now on the Chrome Web Store image

Inertia DevTools Is Now on the Chrome Web Store

Read article