» Javascript equivalent for PHP's array_merge_recursive
226 PHP equivalents
- PHP.JS Licensing
- PHP.JS SVN
- PHP.JS Namespaced
- abs
- acosh
- acos
- addslashes
- array
- array_change_key_case
- array_chunk
- array_combine
- array_count_values
- array_diff
- array_diff_assoc
- array_diff_key
- array_fill
- array_fill_keys
- array_filter
- array_flip
- array_keys
- array_key_exists
- array_map
- array_merge
- » array_merge_recursive
- array_pad
- array_pop
- array_product
- array_push
- array_rand
- array_reduce
- array_reverse
- array_search
- array_shift
- array_slice
- array_splice
- array_sum
- array_unique
- array_unshift
- array_values
- array_walk
- array_walk_recursive
- asinh
- asin
- atanh
- atan
- base64_decode
- base64_encode
- basename
- base_convert
- bin2hex
- bindec
- call_user_func
- call_user_func_array
- ceil
- checkdate
- chop
- chr
- chunk_split
- class_exists
- compact
- constant
- cosh
- cos
- count
- count_chars
- crc32
- create_function
- date
- decbin
- dechex
- decoct
- defined
- define
- deg2rad
- die
- dirname
- each
- echo
- empty
- end
- exit
- explode
- exp
- filesize
- file
- file_exists
- file_get_contents
- floatval
- floor
- fmod
- function_exists
- func_get_args
- func_get_arg
- func_num_args
- getdate
- getrandmax
- gettype
- get_class
- get_defined_functions
- get_defined_vars
- get_headers
- get_html_translation_table
- get_included_files
- hexdec
- htmlentities
- htmlspecialchars
- htmlspecialchars_decode
- html_entity_decode
- http_build_query
- hypot
- implode
- include
- include_once
- intval
- in_array
- ip2long
- isset
- is_array
- is_bool
- is_double
- is_finite
- is_float
- is_infinite
- is_integer
- is_int
- is_long
- is_nan
- is_null
- is_numeric
- is_object
- is_scalar
- is_string
- join
- krsort
- ksort
- lcg_value
- levenshtein
- log10
- log
- long2ip
- ltrim
- max
- md5
- md5_file
- method_exists
- microtime
- min
- mktime
- mt_getrandmax
- mt_rand
- nl2br
- number_format
- octdec
- ord
- parse_str
- pi
- pow
- preg_quote
- printf
- print_r
- property_exists
- quotemeta
- rad2deg
- rand
- range
- require
- require_once
- reset
- round
- rsort
- rtrim
- serialize
- setcookie
- sha1
- sha1_file
- shuffle
- sinh
- sin
- sizeof
- sleep
- sort
- soundex
- split
- sprintf
- sqrt
- strcasecmp
- strchr
- strcmp
- stripos
- stripslashes
- strip_tags
- stristr
- strlen
- strnatcmp
- strncasecmp
- strpbrk
- strpos
- strrev
- strripos
- strrpos
- strspn
- strstr
- strtolower
- strtotime
- strtoupper
- str_ireplace
- str_pad
- str_repeat
- str_replace
- str_rot13
- str_split
- substr
- substr_count
- tanh
- tan
- time
- trim
- ucfirst
- ucwords
- unserialize
- urldecode
- urlencode
- utf8_decode
- utf8_encode
- var_export
- wordwrap
PHP to Javascript Project: php.js
This article is part of the 'Porting PHP to Javascript' Project, which aims to decrease the gap between developing for PHP & Javascript.
A lot of people are familiar with PHP's functions, and though Javascript functions are often quite similar, some functions may be missing or addressed differently. The Javascript implementations should be as compliant with the PHP versions as possible, a good indication is that the PHP function manual could also apply to the Javascript version.
Porting crucial PHP functions to Javascript can be fun & useful. Currently some PHP functions have been added, but readers are encouraged to contribute and improve functions by adding comments. Eventually the goal is to save all the functions in one php.js file and make it publicly available for your coding pleasure.
If you choose to contribute, let me know how you want to be credited in the function's comments. You may also want to subscribe to RSS so you receive updates whenever new functions are posted.
This is a Javascript version of the PHP function: array_merge_recursive.
PHP array_merge_recursive
Description
array_merge_recursive - Merge two or more arrays recursively
array array_merge_recursive( array array1 [, array ...] )
If the input arrays have the same string keys, then the values for these keys are merged together into an array, and this is done recursively, so that if one of the values is an array itself, the function will merge it with a corresponding entry in another array too. If, however, the arrays have the same numeric key, the later value will not overwrite the original value, but will be appended.
Parameters
-
array1
Initial array to merge.
-
array
Variable list of arrays to recursively merge.
Return Values
An array of values resulted from merging the arguments together.
See Also
Javascript array_merge_recursive
Source
This is the main source of the Javascript version of PHP's array_merge_recursive
function array_merge_recursive (arr1, arr2){ // http://kevin.vanzonneveld.net // + original by: Subhasis Deb // - depends on: array_merge // * example 1: arr1 = {'color': {'favourite': 'read'}, 0: 5} // * example 1: arr2 = {0: 10, 'color': {'favorite': 'green', 0: 'blue'}} // * example 1: array_merge_recursive(arr1, arr2) // * returns 1: {'color': {'favorite': {0: 'red', 1: 'green'}, 0: 'blue'}, 1: 5, 1: 10} if ((arr1 && (arr1 instanceof Array)) && (arr2 && (arr2 instanceof Array))) { for (var idx in arr2) { arr1.push(arr2[idx]); } } else if ((arr1 && (arr1 instanceof Object)) && (arr2 && (arr2 instanceof Object))) { for (var idx in arr2) { if (idx in arr1) { if (typeof arr1[idx] == 'object' && typeof arr2 == 'object') { arr1[idx] = array_merge(arr1[idx], arr2[idx]); } else { arr1[idx] = arr2[idx]; } } else { arr1[idx] = arr2[idx]; } } } return arr1; }
To run the Javascript array_merge_recursive, you will also need the following dependencies:
Examples
Currently there is 1 example
Example 1
array_merge_recursive(arr1, arr2)And that would return
{'color': {'favorite': {0: 'red', 1: 'green'}, 0: 'blue'}, 1: 5, 1: 10}
More about this Project
Download php.js
To easily include it in your code, every function currently available is stored in
Normal
- uncompressed source: php.js (257.1kB)
- minified: php.min.js (84.4kB) [recommended]
- compressed: php.packed.js (60kB)
Namespaced What is 'namespaced?'
- uncompressed source: php.namespaced.js (317.6kB)
- minified: php.namespaced.min.js (84.7kB)
- compressed: php.namespaced.packed.js (60.4kB)
To download use Right click, Save Link As
Generally the best way is to use a minified version and gzip it
Credits
Respect & awards go to everybody who has contributed in some way so far:
Your name here?
Contributing is as easy as adding a comment with better code, or code for a new function.
Any contribution leading to improvement will directly get your name & link here.
Coming Project features
Project features that we are currently working on:
- Site. A place for php.js of it's own. You can track our lame attempts at phpjs.org. If there are any CakePHP developers out there who would like to help out, please contact me.
- Compile. Compile your own php.js version, with only the functions you need. Should generate a hash with which you can retrieve latest versions of your php.js combination.
- docBlock. Move to docBlock comments for improved compatibility with IDEs.
- Done - Testsuite. A better test-suite that can be ran locally so developers can easily test before commiting. Also the testing itself should be more thorough.
- Done - Versioning. Individual functions are versioned, but the entire library should be versioned as well.
Like this article?
|
Then Dzone it! Or use another bookmark button below to show your support & help me spread the word. |
Hot StuffFlaming articles» Survive heavy traffic with you... | RelatedArticles like this one» PHP.JS Licensing |
tags: programming, php, javascript, phpjs
category: Programming - Javascript - PHP equivalents
read: 156 times









