php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #33447 mixed array_reduce starting value
Submitted: 2005-06-23 11:23 UTC Modified: 2012-07-28 17:32 UTC
From: david dot tulloh at infaze dot com dot au Assigned: nikic (profile)
Status: Closed Package: *General Issues
PHP Version: 5CVS-2005-06-23 (dev) OS:
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: david dot tulloh at infaze dot com dot au
New email:
PHP Version: OS:

 

 [2005-06-23 11:23 UTC] david dot tulloh at infaze dot com dot au
Description:
------------
The array_reduce function currently only starts with an integer value.  This seriously limits it's functionality.

For example, it should be trivial to use array_reduce to concatonate an array of strings.  This currently isn't possible.

Reproduce code:
---------------
$list = Array("page1", "page2", "page3");
print_r(
    array_reduce($list,
        create_function('$v, $w', 'return $v.$w;')
    , '')
);


Expected result:
----------------
page1page2page3

Actual result:
--------------
0page1page2page3

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2005-06-23 12:25 UTC] tony2001@php.net
And what if you try without the last parameter for array_reduce() ?
 [2005-06-24 02:24 UTC] david dot tulloh at infaze dot com dot au
The solution you provided does work for my example.  However, I still think it would be a good feature to have.

The actual initial purpose I had in mind was to flatten arrays.

$list = Array( Array("a"), Array("b"), Array("c") );
$flat = array_reduce($list, 'array_merge');

Which will unfortunately fail.


Only allowing an integer or null starting type is an odd limitation, particularily as the array can contain any type.
 [2005-06-24 05:10 UTC] david dot tulloh at infaze dot com dot au
Submitted a patch and test file to php-dev.
 [2012-07-28 17:32 UTC] nikic@php.net
Closing as this was implemented in 5.3. Demo: http://viperpad.com/bMpmeO
 [2012-07-28 17:32 UTC] nikic@php.net
-Status: Open +Status: Closed -Package: Feature/Change Request +Package: *General Issues -Assigned To: +Assigned To: nikic
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sun Dec 22 01:01:30 2024 UTC