cvs: /php4 ChangeLog /php4/ext/standard basic_functions.c basic_functions.h
| From: | Andrei Zmievski | Date: | Fri, 01 Oct 1999 17:36:55 +0000 |
| Subject: | cvs: /php4 ChangeLog /php4/ext/standard basic_functions.c basic_functions.h | ||
| Groups: | php.version4 | ||
| Request: | Send a blank email to php-version4+get-5067@lists.php.net to get a copy of this message | ||
andrei Fri Oct 1 13:36:55 1999 EDT
Modified files:
/php4 ChangeLog
/php4/ext/standard basic_functions.c basic_functions.h
Log:
Added array_reverse() function.
Index: php4/ChangeLog
diff -u php4/ChangeLog:1.158 php4/ChangeLog:1.159
--- php4/ChangeLog:1.158 Fri Oct 1 09:44:06 1999
+++ php4/ChangeLog Fri Oct 1 13:36:54 1999
@@ -2,6 +2,7 @@
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ?? 1999, Version 4.0 Beta 3
+- Added array_reverse() function (Andrei)
- Some more XML fixes/cleanups (Thies)
- Updated preg_replace() so that if any argument passed in is an array
it will make a copy of each entry before converting it to string so that
Index: php4/ext/standard/basic_functions.c
diff -u php4/ext/standard/basic_functions.c:1.94 php4/ext/standard/basic_functions.c:1.95
--- php4/ext/standard/basic_functions.c:1.94 Fri Sep 24 18:44:41 1999
+++ php4/ext/standard/basic_functions.c Fri Oct 1 13:36:54 1999
@@ -327,6 +327,7 @@
PHP_FE(array_keys, NULL)
PHP_FE(array_values, NULL)
PHP_FE(array_count_values, NULL)
+ PHP_FE(array_reverse, NULL)
PHP_FE(connection_aborted, NULL)
PHP_FE(connection_timeout, NULL)
@@ -3103,6 +3104,49 @@
}
/* }}} */
+/* {{{ proto array array_reverse(array input)
+ Return input as a new array with the order of the entries reversed */
+PHP_FUNCTION(array_reverse)
+{
+ zval **input, /* Input array */
+ **entry; /* An entry in the input array */
+ char *string_key;
+ ulong num_key;
+
+ /* Get arguments and do error-checking */
+ if (ARG_COUNT(ht) != 1 || getParametersEx(1, &input) == FAILURE) {
+ WRONG_PARAM_COUNT;
+ }
+
+ if ((*input)->type != IS_ARRAY) {
+ zend_error(E_WARNING, "Argument to array_reverse() should be an array");
+ return;
+ }
+
+ /* Initialize return array */
+ array_init(return_value);
+
+ zend_hash_internal_pointer_end((*input)->value.ht);
+ while(zend_hash_get_current_data((*input)->value.ht, (void **)&entry) == SUCCESS) {
+ (*entry)->refcount++;
+
+ switch (zend_hash_get_current_key((*input)->value.ht, &string_key, &num_key)) {
+ case HASH_KEY_IS_STRING:
+ zend_hash_update(return_value->value.ht, string_key, strlen(string_key)+1,
+ entry, sizeof(zval *), NULL);
+ efree(string_key);
+ break;
+
+ case HASH_KEY_IS_LONG:
+ zend_hash_next_index_insert(return_value->value.ht,
+ entry, sizeof(zval *), NULL);
+ break;
+ }
+
+ zend_hash_move_backwards((*input)->value.ht);
+ }
+}
+/* }}} */
/*
* Local variables:
Index: php4/ext/standard/basic_functions.h
diff -u php4/ext/standard/basic_functions.h:1.18 php4/ext/standard/basic_functions.h:1.19
--- php4/ext/standard/basic_functions.h:1.18 Tue Sep 21 10:36:41 1999
+++ php4/ext/standard/basic_functions.h Fri Oct 1 13:36:54 1999
@@ -29,7 +29,7 @@
*/
-/* $Id: basic_functions.h,v 1.18 1999/09/21 14:36:41 thies Exp $ */
+/* $Id: basic_functions.h,v 1.19 1999/10/01 17:36:54 andrei Exp $ */
#ifndef _BASIC_FUNCTIONS_H
#define _BASIC_FUNCTIONS_H
@@ -132,6 +132,7 @@
PHP_FUNCTION(array_keys);
PHP_FUNCTION(array_values);
PHP_FUNCTION(array_count_values);
+PHP_FUNCTION(array_reverse);
#if HAVE_PUTENV
typedef struct {