The array_reduce function simplifies an array into a single value by iteratively applying a callback function, and is often used to sum, splice strings, or convert data structures. 1. The syntax is array_reduce($array, $callback, $initial), and $callback receives $carry (accumulated value) and $item (current element). 2. Summarization example: $numbers = [1,2,3,4,5], the result after callback accumulation is 15. 3. String splicing: Use "Fruits: " as the initial value, add elements one by one, and get "Fruits: , apple, banana, cherry". 4. Data structure conversion: convert the user array into an associative array of ID map name, the initial value is an empty array, and the result is [1=>'Alice',2=>'Bob']. If the array is empty and there is no initial value, return null; the callback should always return $carry to ensure correct accumulation.
The array_reduce function in PHP is used to reduce an array to a single value by applying a callback function iteratively. It processes each element of the array and accumulates a result based on your logic. This is useful for tasks like summing values, concatenating strings, or building complex data structures from arrays.
Basic Syntax
The function signature is:
array_reduce(array $array, callable $callback, mixed $initial = null)- $array : The input array to process
- $callback : A function that takes two parameters (carry and item) and returns a new carry value
- $initial : Optional starting value for the carry
Summing Array Values
A common use is adding up numbers in an array.
$numbers = [1, 2, 3, 4, 5];$sum = array_reduce($numbers, function($carry, $item) {
return $carry $item;
});
// Results: 15
Here, $carry holds the running total, and $item is each array element.
Building Strings or Custom Output
You can use it to concatenate strings with formatting.
$words = ['apple', 'banana', 'cherry'];$sentence = array_reduce($words, function($carry, $item) {
return $carry . ", " . $item;
}, "Fruits: ");
// Results: "Fruits: , apple, banana, cherry"
Note the initial value sets the starting string. You might need to adjust formatting for cleaner output.
Transforming Data Structures
It's also powerful for converting arrays into associated formats.
$users = [['id' => 1, 'name' => 'Alice'],
['id' => 2, 'name' => 'Bob']
];
$mapped = array_reduce($users, function($carry, $user) {
$carry[$user['id']] = $user['name'];
return $carry;
}, []);
// Results: [1 => 'Alice', 2 => 'Bob']
This builds a map of user IDs to names, starting with an empty array as the initial value.
Basically just pass your array and a function that updates the accumulator. If the array is empty and no initial value is given, array_reduce returns null. Make sure your callback always return the carry unless you have a special case.
The above is the detailed content of How to use the array_reduce function in PHP. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

ArtGPT
AI image generator for creative art from text prompts.

Stock Market GPT
AI powered investment research for smarter decisions

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

The full version of Mantianxing Comic is https://www.mantianxingmh.com. The platform covers various themes such as passion, love, suspense, science fiction, etc., with rich resources and timely updates and supports classified retrieval; it provides high-definition picture quality, multiple page turning modes, custom background and brightness adjustment, and has an eye protection mode to optimize reading experience; users can create bookshelf, save reading records, download offline, and achieve cross-device synchronization progress.

OOPinPHPorganizescodeintoreusableclassesandobjects.1.Classesdefinepropertiesandmethods,instantiatedvia$this.2.Constructors(__construct)initializeobjectproperties.3.Accessmodifiers(public,private,protected)controlvisibility.4.Inheritance(extends)allow

Use mysqli_insert_id() (procedure style), $mysqli->insert_id (object style), or $pdo->lastInsertId() (PDO) to get the last inserted ID and needs to be called immediately in the same connection to ensure accuracy.

FinalclassesandmethodsinPHPpreventinheritanceandoverridingtoprotectcriticalcode.2.Afinalclasscannotbeextended,ensuringitsbehaviorremainsunchanged.3.Afinalmethodcannotbeoverridden,preservingconsistentimplementationacrosssubclasses.4.Usefinalforsecurit

Use single quotes or escaped double quotes to output HTML in PHP. It is recommended to wrap strings with single quotes to avoid attribute quotation conflicts. Dynamic content can be generated in combination with variable splicing or heredoc syntax.

Use$_GETtoaccessURLquerystringvariablesinPHP,suchasname=Johnandage=30fromhttps://example.com/search.php?name=John&age=30;alwaysvalidateandsanitizeinputsusingfilter_input()andavoidsensitivedatainURLsduetoexposurerisks.

AsingletonclassinPHPensuresonlyoneinstanceexistsbyusingaprivateconstructor,preventingcloningandunserialization,andprovidingaglobalaccesspointviaastaticmethodthatreturnsthesingleinstancestoredinaprivatestaticproperty.

TraitsinPHPenablehorizontalcodereusebyallowingclassestoinheritmethodsfromreusabletraitcontainers,bypassingsingleinheritancelimits.Forexample,theLoggabletraitprovidesalog()methodtoanyclassusingit,suchasUser,whichcanthencall$this->log("Usercrea
