cvs: /php4 ChangeLog /php4/ext/standard basic_functions.c basic_functions.h

From: 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 {

« previous php.version4 (#5067) next »