phpjs
Version:
88 lines (73 loc) • 2.73 kB
Markdown
layout: page
title: "JavaScript array_keys function"
comments: true
sharing: true
footer: true
alias:
- /functions/view/array_keys:324
- /functions/view/array_keys
- /functions/view/324
- /functions/array_keys:324
- /functions/324
<!-- Generated by Rakefile:build -->
A JavaScript equivalent of PHP's array_keys
{% codeblock array/array_keys.js lang:js https://raw.github.com/kvz/phpjs/master/functions/array/array_keys.js raw on github %}
function array_keys (input, search_value, argStrict) {
// From: http://phpjs.org/functions
// + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// + input by: Brett Zamir (http://brett-zamir.me)
// + bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// + improved by: jd
// + improved by: Brett Zamir (http://brett-zamir.me)
// + input by: P
// + bugfixed by: Brett Zamir (http://brett-zamir.me)
// * example 1: array_keys( {firstname: 'Kevin', surname: 'van Zonneveld'} );
// * returns 1: {0: 'firstname', 1: 'surname'}
var search = typeof search_value !== 'undefined',
tmp_arr = [],
strict = !!argStrict,
include = true,
key = '';
if (input && typeof input === 'object' && input.change_key_case) { // Duck-type check for our own array()-created PHPJS_Array
return input.keys(search_value, argStrict);
}
for (key in input) {
if (input.hasOwnProperty(key)) {
include = true;
if (search) {
if (strict && input[key] !== search_value) {
include = false;
}
else if (input[key] != search_value) {
include = false;
}
}
if (include) {
tmp_arr[tmp_arr.length] = key;
}
}
}
return tmp_arr;
}
{% endcodeblock %}
- [Raw function on GitHub](https://github.com/kvz/phpjs/blob/master/functions/array/array_keys.js)
Please note that php.js uses JavaScript objects as substitutes for PHP arrays, they are
the closest match to this hashtable-like data structure.
Please also note that php.js offers community built functions and goes by the
[McDonald's Theory](https://medium.com/what-i-learned-building/9216e1c9da7d). We'll put online
functions that are far from perfect, in the hopes to spark better contributions.
Do you have one? Then please just:
- [Edit on GitHub](https://github.com/kvz/phpjs/edit/master/functions/array/array_keys.js)
### Example 1
This code
{% codeblock lang:js example %}
array_keys( {firstname: 'Kevin', surname: 'van Zonneveld'} );
{% endcodeblock %}
Should return
{% codeblock lang:js returns %}
{0: 'firstname', 1: 'surname'}
{% endcodeblock %}
### Other PHP functions in the array extension
{% render_partial _includes/custom/array.html %}