Zeev Suraski
90b29aa076
Replace fast_call_user_function() with zend_call_function()
2003-08-05 10:29:03 +00:00
Zeev Suraski
2547b6f6f6
Fix bug #24652 - Sterling, do you begin to think that maybe it wasn't such
...
a good idea?
2003-08-04 08:38:24 +00:00
Ilia Alshanetsky
ee3e4f79df
Removed unused variable.
2003-07-25 03:03:26 +00:00
Zeev Suraski
0a49c033d0
- Use the new infrastructure of zend_symtable_*() (fixes bug #24565 )
...
- Fix bogus use of get_current_key()
2003-07-22 16:08:50 +00:00
Ilia Alshanetsky
6057160dbf
Fixed bug #24198 (Invalid recursion detection in array_merge_recurcive())
2003-06-16 17:35:16 +00:00
Andrey Hristov
2d4449caf9
silly bug
2003-06-12 15:11:11 +00:00
James Cox
f68c7ff249
updating license information in the headers.
2003-06-10 20:04:29 +00:00
Sterling Hughes
295a1c665c
fix array_key_exists() from HANDLE_NUMERIC() changes
...
# need to go through this file and find any stuff that relies on this
# change
2003-06-05 13:58:14 +00:00
Sterling Hughes
3c6fd35007
initialize these to NULL
2003-05-20 18:18:56 +00:00
Sterling Hughes
9ac50a13d7
convert array functions to use fast_call_user_function(), gives a nice
...
performance win.
2003-05-20 16:46:53 +00:00
Moriyoshi Koizumi
4e9e9c6e21
Fixed bug #22463 and bug #23581
2003-05-11 06:36:37 +00:00
Sara Golemon
07c679064a
Bug Fix (22433). When the bottom of a range() is chr(0) or the top is chr(255), the for loop carries over and never exits.
2003-05-02 00:58:02 +00:00
Moriyoshi Koizumi
0c5548e636
Fixed implicit cast issue with is*() and to*() functions
2003-04-16 21:40:48 +00:00
Sara Golemon
465bb61357
Kludgy fix for floating point drift causing problems like range(1.0,1.5,0.1) == array(1.0,1.1,1.2,1.3,1.4);
2003-04-03 18:33:05 +00:00
Rasmus Lerdorf
4b343a0562
MFB
2003-04-01 21:47:21 +00:00
Ilia Alshanetsky
3db5278dcc
CS
2003-03-27 18:57:53 +00:00
Andrey Hristov
8c2dbd5f0f
additional speedup for array_shift(). No need to rehash if the removed element's
...
key is not scalar and elements with scalar keys are already well numbered
(sequentially from 0) for some reason. This is the case if the leading
elements have no scalar indexes.
2003-02-22 13:55:11 +00:00
Andrey Hristov
94040a28ce
rehash only in case something is changed.
...
#lowers the execution time in half on my machine on array with 1000 elements
#with nonscalar keys. Maybe it can be optimized further.
2003-02-22 10:54:26 +00:00
foobar
20f9b6d02c
- Fixed bug #22088 (array_shift() leaves next index to be +1 too much)
2003-02-06 15:27:53 +00:00
Ilia Alshanetsky
f12a6b7663
Added array_walk_recursive() function that can apply array_walk recursively
...
to an array.
2003-02-05 17:56:08 +00:00
foobar
07a9729071
- Fixed bug: #21998 (array_pop() did not reset the current array position)
...
# This behaves now same as in PHP 4.2.3
2003-02-03 16:57:02 +00:00
Ilia Alshanetsky
38ad0e9104
zend_error -> php_error_docref.
2003-01-24 16:29:40 +00:00
Ilia Alshanetsky
8a9e09a44a
ARG_COUNT(ht) -> ZEND_NUM_ARGS().
2003-01-21 14:56:40 +00:00
Andrey Hristov
1cdc956637
added array_combine().
...
Creates an array by using the elements of the first parameter as keys and
the elements of the second as correspoding keys. Error is thrown in case
the arrays has different number of elements. Number of elements 0 is not
valid for both parameters.
2003-01-13 18:12:23 +00:00
Moriyoshi Koizumi
f962ba6abb
Fixed small leaks in array_map() in case the first parameter is NULL like
...
array_map(NULL, array(...));
2003-01-03 05:05:12 +00:00
Sebastian Bergmann
b506f5c8f8
Bump year.
2002-12-31 16:08:15 +00:00
Ilia Alshanetsky
fbcee73c8c
Make range operate on the copies of the parameters rather then modify the
...
actual parameters.
2002-12-25 20:02:03 +00:00
Ilia Alshanetsky
3a4bf3f904
When low & high are the same return an array containing the low value.
...
Added support for float values and handling of numeric values being passed
as strings.
Added a test case for range().
2002-12-20 17:16:31 +00:00
Moriyoshi Koizumi
4974f268a6
@- Let array_search() accept objects as a needle under ZendEngine2. (Moriyoshi)
2002-12-09 15:54:38 +00:00
Ilia Alshanetsky
ed7c3bfe0e
Fixed bug #20865 , array_key_exists() could not locate NULL keys.
2002-12-06 17:35:52 +00:00
Ilia Alshanetsky
c668055159
Remove pointless checks for array_init() return values.
2002-12-05 22:28:02 +00:00
Moriyoshi Koizumi
7bf4090efb
Fixed segfaults of array_walk() when keys are passed to cb by reference.
...
Fixed bug #12776 .
2002-12-04 16:41:28 +00:00
Moriyoshi Koizumi
242ddba326
Fixed leaks in array_walk()
2002-12-03 15:02:06 +00:00
Moriyoshi Koizumi
98dace883e
Improved the error reporting portion of array_walk() as suggested by Markus
2002-11-26 22:12:40 +00:00
Moriyoshi Koizumi
3fd513f32a
Prevent too many error reports from being displayed
2002-11-26 21:51:37 +00:00
Moriyoshi Koizumi
61b3d5ccb5
Fixed incorrect error messages of array_walk() in case the callback is
...
specified in an array form
2002-11-26 21:21:32 +00:00
Moriyoshi Koizumi
44c98c7e3f
Fixed some odd behaviours of range()
2002-11-23 11:27:56 +00:00
Moriyoshi Koizumi
fb20eae7fc
Fixed bug #20381
2002-11-15 02:16:41 +00:00
Jon Parise
92df58dab6
@- Added an optional "step" parameter to range(). (Jon)
2002-11-14 05:46:10 +00:00
John Coggeshall
253cecd43a
Added GLOB_ONLYDIR and GLOB_BRACE for compatiable systems for the glob()
...
function.
Modified the layout and some minor logic in the experimental webHarness()
test class
Added Whitespace accidently to array.c :)
2002-11-13 13:31:33 +00:00
Ilia Alshanetsky
6d57337cda
Fixed a memory leak in array_fill().
...
The refcount hack is now done for ZE1 only and is slightly faster then the
original.
After this patch array_fill() can consistently create arrays with >65k elements.
2002-11-05 16:19:19 +00:00
Sterling Hughes
f61889e72d
revert patch
2002-10-10 19:24:45 +00:00
Sterling Hughes
2c4aa71d32
clean these functions up using zend_parse_parameters and nuke the use of
...
HASH_OF() which is inappropriate in these cases...
2002-10-09 18:29:45 +00:00
Sterling Hughes
521a9bdadc
small cleanups...
2002-10-09 17:15:56 +00:00
Andrey Hristov
9ee1ce156f
ws fixes.
...
#hope not to be flamed :) what a wonderful day.
2002-09-21 16:10:33 +00:00
Andrey Hristov
a920f00479
New function added - array_intersect_assoc() similar to array_intersect()
...
but the keys are also used in the comparison. So the result is a subset of
the result of array_intersect().
Test will be committed too.
2002-09-21 14:50:04 +00:00
Andrey Hristov
23d3cd79c1
Fixing my zts fix.
...
#Sorry Edin
2002-09-12 08:20:37 +00:00
Andrey Hristov
ad92434638
Removed magic numbers about the behavior of php_array_diff - proposed by
...
Andi and Jon Parise.
#It is strange that I commited ZTS code but after that Edin fixed ZTS build
#when I updated - it wasn't ZTS. hmmm. anyway fixing ZTS build.
2002-09-12 08:04:42 +00:00
Edin Kadribasic
705e72f363
Fix ZTS build.
2002-09-11 23:09:11 +00:00
Derick Rethans
aaf920f9d5
- Little whitespace changes
2002-09-11 18:40:56 +00:00
Andrey Hristov
afdfe38ef3
New function added : array_diff_assoc() . Like array_diff() but does
...
additional checks on key values. Test script will be added too.
#My first patch . it feels strange :)
2002-09-11 18:13:48 +00:00
Edin Kadribasic
333b01b041
Fixed ZTS build.
2002-09-10 22:36:43 +00:00
Andrei Zmievski
dd7cf22443
@- Fixed array_merge_recursive() to avoid problems with merging cyclical
...
@ arrays (bug #16064 ). (Andrei)
2002-09-10 18:34:16 +00:00
Andrei Zmievski
2c6154d7aa
@- Added ability to extract() variables as references via OR'able EXTR_REFS
...
@ flag. (Andrei)
2002-09-09 20:05:20 +00:00
Marcus Boerger
149ad05b4f
php_error_docref
...
#New conversion available at: http://docref.txt.marcus-boerger.de
2002-08-24 01:19:28 +00:00
Marcus Boerger
95e933fc99
Fixes array test 004.phpt. Nice copy paste error.
2002-08-21 11:23:44 +00:00
Dan Kalowsky
dee21adc3d
Fix for bug #18401 , makes shuffle() properly generate all possibilities.
...
Patch provided by Adam Trachtenberg <adam@trachtenberg.com>
2002-08-15 19:09:05 +00:00
Brad LaFountain
c90764d753
one last fix for array_shift
2002-08-03 00:40:46 +00:00
Brad LaFountain
9b0553c390
array_pop wasnt setting next index
2002-08-01 17:34:31 +00:00
foobar
922b7596a2
That was not correct..
2002-08-01 16:44:47 +00:00
foobar
6df2b90c05
Reset index when doing array_pop()
2002-08-01 16:39:52 +00:00
foobar
06b3dd122f
Nuke compile warning.
2002-08-01 12:07:15 +00:00
foobar
9d62cd7d45
- Removed the DOS line endings
...
- Changed the '//' comment (this is C, not C++) to /* */
# Brad, use some editor which works..
2002-08-01 12:06:46 +00:00
Brad LaFountain
4f5bd6b7d4
made array_shift re-index like it did before previous fix
2002-08-01 04:38:11 +00:00
foobar
9fe39b9604
Reverted the patch..it breaks the original behaviour of at least array_shift.
2002-07-31 13:49:50 +00:00
Brad LaFountain
70fb744365
fixed bugs 16063 and 16068
...
increased preformance of array_pop and array_shift
2002-07-30 22:54:12 +00:00
Derick Rethans
392a452c80
Silence warning
2002-07-08 07:33:22 +00:00
Derick Rethans
cc920570fd
Unify error messages
2002-07-08 07:32:59 +00:00
Derick Rethans
7faa669915
- Fix for bug #14580 : Made key() binary safe
2002-07-08 07:02:55 +00:00
Derick Rethans
1bf9b3d736
- Fix for bug #17654
2002-06-29 15:39:41 +00:00
Stig Venaas
7853832234
Made array_unique() always keep the first occurrences of duplicates,
...
making the behavior easier to understand, and maybe more useful.
2002-06-18 19:37:59 +00:00
Jan Lehnardt
df226a54d9
- WS-fixes
2002-06-18 13:16:33 +00:00
Jan Lehnardt
a8de8ec90c
- whitespace fix
2002-06-10 16:34:25 +00:00
Harald Radi
8e19555608
fix the build
2002-06-10 12:21:58 +00:00
Andrei Zmievski
7f4c12b006
Fix bug #7045 : shuffle() now provides consistent distribution of values
...
in the array.
2002-06-10 02:28:32 +00:00
Edin Kadribasic
e7ab5766d6
Fixed array_rand() on ZTS platforms.
...
@- Fixed array_rand() on thread-safe platforms such as Windows. (Edin)
2002-06-03 17:49:48 +00:00
Andrei Zmievski
1668570e4d
Changing email address.
2002-05-13 17:28:38 +00:00
Andrei Zmievski
5ff970ba7d
Fix Bug #14795 .
2002-04-24 15:23:43 +00:00
Andrei Zmievski
4fc01022e6
Fix unwanted type conversion in array_merge_recursive (Bug #14990 ).
2002-04-24 15:01:53 +00:00
Sebastian Bergmann
6adb33006b
Fix TSRMLS_CC.
2002-03-12 07:20:00 +00:00
Yasuo Ohgaki
e953dba0d7
Make use of TSRMLS_C/D
2002-03-12 06:56:57 +00:00
Zeev Suraski
bb685a402f
Fix php_splice() to work with large values
2002-03-01 12:00:05 +00:00
Andi Gutmans
284eaf34cc
- Add TSRMLS_FETCH()'s needed for the new object overloading in ZE2.
2002-02-05 20:43:49 +00:00
Andrei Zmievski
441c583a2c
Converted extract() to use smart_str for variable name manipulation. This
...
sped it up a bit.
2002-02-01 20:17:32 +00:00
Rasmus Lerdorf
0d139d3c27
(extraxt) add EXTR_IF_EXISTS and EXTR_PREFIX_IF_EXISTS flags
...
@- Added EXTR_IF_EXISTS and EXTR_PREFIX_IF_EXISTS flags to extract()
@ EXTR_IF_EXISTS only extracts a variable if it already exists
@ EXTR_PREFIX_IF_EXISTS only extracts the variable if it exists and
@ then it prepends the prefix to it. ie. if $PATH exists then
@ extract($_ENV,EXTR_PREFIX_IF_EXISTS,'e') would result in $e_PATH
@ This lets you do $a = $b = $c = true; extract($_REQUEST,EXTR_IF_EXISTS);
@ and you only get the global request variables you have defined imported
@ into your symbol table. (Rasmus)
2002-01-25 09:01:02 +00:00
Andrei Zmievski
ddc039d0f5
Fix the recursive counting, it was broken for associative or non-sequential
...
arrays. Also update NEWS file.
2002-01-10 21:31:06 +00:00
Derick Rethans
aee570302f
- Fix bug introduced in earlier patch
2002-01-09 16:03:36 +00:00
Derick Rethans
cef0a461f9
- Added extra parameter to count() that recursively counts elements in an
...
array and added is_array_multidimensional(). (patch by Vlad Bosinceanu
<glipy@fx.ro>)
2001-12-29 20:59:59 +00:00
Andi Gutmans
211d712c59
@ Fix bug in krsort() where an extra character was being compared (Andi)
...
- Fix bug in krsort() where an extra character was being compared (Andi)
2001-12-29 20:47:25 +00:00
Zak Greant
2c9f5d8a91
Modified array_walk, arsort, asort, krsort, ksort, rsort, shuffle, sort,
...
uasort, uksort and usort.
Corrected prototype comments for all.
Converted to use zend_parse_parameters, except for the u.?sort functions.
Changed return values for failure from implicit NULL to explicit FALSE in
asort(), krsort(), and ksort().
Changed pval to zval in the u.?sort functions.
Added test to help ensure that fixes to code do not change function
behavior. Tests are quite large (~237k) but compress down to ~16k.
Please let me know if this is a problem!
2001-12-22 11:49:56 +00:00
Sebastian Bergmann
38933514e1
Update headers.
2001-12-11 15:32:16 +00:00
Derick Rethans
78e4644fa1
- Renaming key_exists to array_key_exists
...
@- Renamed key_exists tp array_key_exists. (Derick)
#- Not sure if this belongs in NEWS, but it was already in a released
# version. And yes, I know I'm breaking BC here, but as it was not documented
# yet, that doesn't matter.
2001-11-11 18:28:43 +00:00
Andrei Zmievski
2890b57e46
@- Added array_chunk() function that splits an array into chunks of specified
...
@ size. (Andrei)
2001-10-27 05:11:15 +00:00
Rasmus Lerdorf
72fc6bc4b1
As suggested on php-dev, array_fill() is probably a better name for this
...
function.
2001-10-23 18:46:35 +00:00
Rasmus Lerdorf
d98c96fc6c
Use references instead of making a copy each time in array_init(). About
...
twice as fast for a high number of elements. 2.80 seconds for the copy
of 1,000,000 elements and 1.39s for the reference version. Need to chunk
it every 62k or so because refcount is a short.
2001-10-22 20:49:27 +00:00
Rasmus Lerdorf
4d60dbb9ef
Oops, leftover crud
2001-10-21 07:45:32 +00:00
Rasmus Lerdorf
798ec79319
Motivated by bug #13607 I wrote up a simple array_init() function that
...
lets you quickly create an array and initialize each element to a certain
value.
@ Add array_init() function (Rasmus)
2001-10-21 07:42:35 +00:00
Jeroen van Wolffelaar
78b881f389
Fix naming inside php_search_array, comp_func is not a compare function.
2001-10-07 13:49:08 +00:00
Jeroen van Wolffelaar
62feefddc7
Fix array_search and in_array. Now binary safe, and faster (returns when
...
found, and doesn't duplicate the key each time, but only when necessary)
Patch also by Edin Kadribasic
2001-10-05 21:58:41 +00:00
Jeroen van Wolffelaar
89ea50a588
Fix bug 13567 and don't depend on a boolean int-value to be either 1 or 0
2001-10-05 20:14:33 +00:00