PHP: Get key from array?
I am sure that this is super easy and built-in function in PHP, but I have yet not seen it.
Here's what I am doing for the moment:
foreach($array as $key => $value) {
echo $key; // Would output "subkey" in the example array
print_r($value);
}
Could I do something like the following instead and thereby save myself from writing "$key => $value" in every foreach loop? (psuedocode)
foreach($array as $subarray) {
echo arrayKey($subarray); // Will output the same as "echo $key" in the former example ("subkey"
print_r($value);
}
Thanks!
The array:
Array
(
[subKey] => Array
(
[value] => myvalue
)
)
php arrays multidimensional-array key
|
show 4 more comments
I am sure that this is super easy and built-in function in PHP, but I have yet not seen it.
Here's what I am doing for the moment:
foreach($array as $key => $value) {
echo $key; // Would output "subkey" in the example array
print_r($value);
}
Could I do something like the following instead and thereby save myself from writing "$key => $value" in every foreach loop? (psuedocode)
foreach($array as $subarray) {
echo arrayKey($subarray); // Will output the same as "echo $key" in the former example ("subkey"
print_r($value);
}
Thanks!
The array:
Array
(
[subKey] => Array
(
[value] => myvalue
)
)
php arrays multidimensional-array key
11
Whats wrong withforeach($array as $key => $value)
? Or, asked the other way around, what's the point usingforeach($array as $value)
when you actually need$key
somewhere down the road?
– Tomalak
Jul 23 '10 at 12:10
2
I just thought it could be a good idea to get the key in a quick way
– Industrial
Jul 23 '10 at 12:12
1
But you do get it in a quick way withforeach($array as $key => $value)
... :-) Or is the situation not that you are in a foreach loop?
– Tomalak
Jul 23 '10 at 12:14
I am in a foreach loop for sure, but what i've thought about was to not change the foreach statement, but just printing out the key.
– Industrial
Jul 23 '10 at 12:21
3
Every function call you could make would be less efficient than simply changing to the appropriate foreach loop construct.
– Tomalak
Jul 23 '10 at 13:48
|
show 4 more comments
I am sure that this is super easy and built-in function in PHP, but I have yet not seen it.
Here's what I am doing for the moment:
foreach($array as $key => $value) {
echo $key; // Would output "subkey" in the example array
print_r($value);
}
Could I do something like the following instead and thereby save myself from writing "$key => $value" in every foreach loop? (psuedocode)
foreach($array as $subarray) {
echo arrayKey($subarray); // Will output the same as "echo $key" in the former example ("subkey"
print_r($value);
}
Thanks!
The array:
Array
(
[subKey] => Array
(
[value] => myvalue
)
)
php arrays multidimensional-array key
I am sure that this is super easy and built-in function in PHP, but I have yet not seen it.
Here's what I am doing for the moment:
foreach($array as $key => $value) {
echo $key; // Would output "subkey" in the example array
print_r($value);
}
Could I do something like the following instead and thereby save myself from writing "$key => $value" in every foreach loop? (psuedocode)
foreach($array as $subarray) {
echo arrayKey($subarray); // Will output the same as "echo $key" in the former example ("subkey"
print_r($value);
}
Thanks!
The array:
Array
(
[subKey] => Array
(
[value] => myvalue
)
)
php arrays multidimensional-array key
php arrays multidimensional-array key
edited Feb 1 '14 at 18:48
aksu
4,51751837
4,51751837
asked Jul 23 '10 at 11:54
IndustrialIndustrial
15.5k57169275
15.5k57169275
11
Whats wrong withforeach($array as $key => $value)
? Or, asked the other way around, what's the point usingforeach($array as $value)
when you actually need$key
somewhere down the road?
– Tomalak
Jul 23 '10 at 12:10
2
I just thought it could be a good idea to get the key in a quick way
– Industrial
Jul 23 '10 at 12:12
1
But you do get it in a quick way withforeach($array as $key => $value)
... :-) Or is the situation not that you are in a foreach loop?
– Tomalak
Jul 23 '10 at 12:14
I am in a foreach loop for sure, but what i've thought about was to not change the foreach statement, but just printing out the key.
– Industrial
Jul 23 '10 at 12:21
3
Every function call you could make would be less efficient than simply changing to the appropriate foreach loop construct.
– Tomalak
Jul 23 '10 at 13:48
|
show 4 more comments
11
Whats wrong withforeach($array as $key => $value)
? Or, asked the other way around, what's the point usingforeach($array as $value)
when you actually need$key
somewhere down the road?
– Tomalak
Jul 23 '10 at 12:10
2
I just thought it could be a good idea to get the key in a quick way
– Industrial
Jul 23 '10 at 12:12
1
But you do get it in a quick way withforeach($array as $key => $value)
... :-) Or is the situation not that you are in a foreach loop?
– Tomalak
Jul 23 '10 at 12:14
I am in a foreach loop for sure, but what i've thought about was to not change the foreach statement, but just printing out the key.
– Industrial
Jul 23 '10 at 12:21
3
Every function call you could make would be less efficient than simply changing to the appropriate foreach loop construct.
– Tomalak
Jul 23 '10 at 13:48
11
11
Whats wrong with
foreach($array as $key => $value)
? Or, asked the other way around, what's the point using foreach($array as $value)
when you actually need $key
somewhere down the road?– Tomalak
Jul 23 '10 at 12:10
Whats wrong with
foreach($array as $key => $value)
? Or, asked the other way around, what's the point using foreach($array as $value)
when you actually need $key
somewhere down the road?– Tomalak
Jul 23 '10 at 12:10
2
2
I just thought it could be a good idea to get the key in a quick way
– Industrial
Jul 23 '10 at 12:12
I just thought it could be a good idea to get the key in a quick way
– Industrial
Jul 23 '10 at 12:12
1
1
But you do get it in a quick way with
foreach($array as $key => $value)
... :-) Or is the situation not that you are in a foreach loop?– Tomalak
Jul 23 '10 at 12:14
But you do get it in a quick way with
foreach($array as $key => $value)
... :-) Or is the situation not that you are in a foreach loop?– Tomalak
Jul 23 '10 at 12:14
I am in a foreach loop for sure, but what i've thought about was to not change the foreach statement, but just printing out the key.
– Industrial
Jul 23 '10 at 12:21
I am in a foreach loop for sure, but what i've thought about was to not change the foreach statement, but just printing out the key.
– Industrial
Jul 23 '10 at 12:21
3
3
Every function call you could make would be less efficient than simply changing to the appropriate foreach loop construct.
– Tomalak
Jul 23 '10 at 13:48
Every function call you could make would be less efficient than simply changing to the appropriate foreach loop construct.
– Tomalak
Jul 23 '10 at 13:48
|
show 4 more comments
8 Answers
8
active
oldest
votes
You can use key():
<?php
$array = array(
"one" => 1,
"two" => 2,
"three" => 3,
"four" => 4
);
while($element = current($array)) {
echo key($array)."n";
next($array);
}
?>
7
Hi! But key doesnt work in a foreach, right?
– Industrial
Jul 23 '10 at 12:49
3
I want to add that you can use key() ANYWHERE but for this problem it make sense to use it in a while-loop. You can use key() in the instance of only wanting the first/current array element's key.
– JRomero
Nov 21 '12 at 19:50
3
@Industrialforeach
uses the key... if you want to use foreach, do this:foreach($array as $key => $value) { ... }
– Greg
Oct 16 '13 at 15:27
Dosn't work if the value is equal to0
– executable
Jan 2 at 14:02
add a comment |
Use the array_search
function.
Example from php.net
$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');
$key = array_search('green', $array); // $key = 2;
$key = array_search('red', $array); // $key = 1;
Hi, updated my original post with an array example. Thanks!
– Industrial
Jul 23 '10 at 12:03
add a comment |
$foo = array('a' => 'apple', 'b' => 'ball', 'c' => 'coke');
foreach($foo as $key => $item) {
echo $item.' is begin with ('.$key.')';
}
This needs to be higher
– Jakob Abfalter
Feb 22 '16 at 14:57
add a comment |
$array = array(0 => 100, "color" => "red");
print_r(array_keys($array));
what's d difference?
– gumuruh
Apr 18 '12 at 9:17
add a comment |
If it IS a foreach
loop as you have described in the question, using $key => $value
is fast and efficient.
add a comment |
If you want to be in a foreach
loop, then foreach($array as $key => $value)
is definitely the recommended approach. Take advantage of simple syntax when a language offers it.
add a comment |
Another way to use key($array) in a foreach loop is by using next($array) at the end of the loop, just make sure each iteration calls the next() function (in case you have complex branching inside the loop)
add a comment |
Try this
foreach(array_keys($array) as $nmkey)
{
echo $nmkey;
}
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f3317856%2fphp-get-key-from-array%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
8 Answers
8
active
oldest
votes
8 Answers
8
active
oldest
votes
active
oldest
votes
active
oldest
votes
You can use key():
<?php
$array = array(
"one" => 1,
"two" => 2,
"three" => 3,
"four" => 4
);
while($element = current($array)) {
echo key($array)."n";
next($array);
}
?>
7
Hi! But key doesnt work in a foreach, right?
– Industrial
Jul 23 '10 at 12:49
3
I want to add that you can use key() ANYWHERE but for this problem it make sense to use it in a while-loop. You can use key() in the instance of only wanting the first/current array element's key.
– JRomero
Nov 21 '12 at 19:50
3
@Industrialforeach
uses the key... if you want to use foreach, do this:foreach($array as $key => $value) { ... }
– Greg
Oct 16 '13 at 15:27
Dosn't work if the value is equal to0
– executable
Jan 2 at 14:02
add a comment |
You can use key():
<?php
$array = array(
"one" => 1,
"two" => 2,
"three" => 3,
"four" => 4
);
while($element = current($array)) {
echo key($array)."n";
next($array);
}
?>
7
Hi! But key doesnt work in a foreach, right?
– Industrial
Jul 23 '10 at 12:49
3
I want to add that you can use key() ANYWHERE but for this problem it make sense to use it in a while-loop. You can use key() in the instance of only wanting the first/current array element's key.
– JRomero
Nov 21 '12 at 19:50
3
@Industrialforeach
uses the key... if you want to use foreach, do this:foreach($array as $key => $value) { ... }
– Greg
Oct 16 '13 at 15:27
Dosn't work if the value is equal to0
– executable
Jan 2 at 14:02
add a comment |
You can use key():
<?php
$array = array(
"one" => 1,
"two" => 2,
"three" => 3,
"four" => 4
);
while($element = current($array)) {
echo key($array)."n";
next($array);
}
?>
You can use key():
<?php
$array = array(
"one" => 1,
"two" => 2,
"three" => 3,
"four" => 4
);
while($element = current($array)) {
echo key($array)."n";
next($array);
}
?>
answered Jul 23 '10 at 12:28
vtorhonenvtorhonen
2,0691219
2,0691219
7
Hi! But key doesnt work in a foreach, right?
– Industrial
Jul 23 '10 at 12:49
3
I want to add that you can use key() ANYWHERE but for this problem it make sense to use it in a while-loop. You can use key() in the instance of only wanting the first/current array element's key.
– JRomero
Nov 21 '12 at 19:50
3
@Industrialforeach
uses the key... if you want to use foreach, do this:foreach($array as $key => $value) { ... }
– Greg
Oct 16 '13 at 15:27
Dosn't work if the value is equal to0
– executable
Jan 2 at 14:02
add a comment |
7
Hi! But key doesnt work in a foreach, right?
– Industrial
Jul 23 '10 at 12:49
3
I want to add that you can use key() ANYWHERE but for this problem it make sense to use it in a while-loop. You can use key() in the instance of only wanting the first/current array element's key.
– JRomero
Nov 21 '12 at 19:50
3
@Industrialforeach
uses the key... if you want to use foreach, do this:foreach($array as $key => $value) { ... }
– Greg
Oct 16 '13 at 15:27
Dosn't work if the value is equal to0
– executable
Jan 2 at 14:02
7
7
Hi! But key doesnt work in a foreach, right?
– Industrial
Jul 23 '10 at 12:49
Hi! But key doesnt work in a foreach, right?
– Industrial
Jul 23 '10 at 12:49
3
3
I want to add that you can use key() ANYWHERE but for this problem it make sense to use it in a while-loop. You can use key() in the instance of only wanting the first/current array element's key.
– JRomero
Nov 21 '12 at 19:50
I want to add that you can use key() ANYWHERE but for this problem it make sense to use it in a while-loop. You can use key() in the instance of only wanting the first/current array element's key.
– JRomero
Nov 21 '12 at 19:50
3
3
@Industrial
foreach
uses the key... if you want to use foreach, do this: foreach($array as $key => $value) { ... }
– Greg
Oct 16 '13 at 15:27
@Industrial
foreach
uses the key... if you want to use foreach, do this: foreach($array as $key => $value) { ... }
– Greg
Oct 16 '13 at 15:27
Dosn't work if the value is equal to
0
– executable
Jan 2 at 14:02
Dosn't work if the value is equal to
0
– executable
Jan 2 at 14:02
add a comment |
Use the array_search
function.
Example from php.net
$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');
$key = array_search('green', $array); // $key = 2;
$key = array_search('red', $array); // $key = 1;
Hi, updated my original post with an array example. Thanks!
– Industrial
Jul 23 '10 at 12:03
add a comment |
Use the array_search
function.
Example from php.net
$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');
$key = array_search('green', $array); // $key = 2;
$key = array_search('red', $array); // $key = 1;
Hi, updated my original post with an array example. Thanks!
– Industrial
Jul 23 '10 at 12:03
add a comment |
Use the array_search
function.
Example from php.net
$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');
$key = array_search('green', $array); // $key = 2;
$key = array_search('red', $array); // $key = 1;
Use the array_search
function.
Example from php.net
$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');
$key = array_search('green', $array); // $key = 2;
$key = array_search('red', $array); // $key = 1;
answered Jul 23 '10 at 11:56
SarfrazSarfraz
300k65471547
300k65471547
Hi, updated my original post with an array example. Thanks!
– Industrial
Jul 23 '10 at 12:03
add a comment |
Hi, updated my original post with an array example. Thanks!
– Industrial
Jul 23 '10 at 12:03
Hi, updated my original post with an array example. Thanks!
– Industrial
Jul 23 '10 at 12:03
Hi, updated my original post with an array example. Thanks!
– Industrial
Jul 23 '10 at 12:03
add a comment |
$foo = array('a' => 'apple', 'b' => 'ball', 'c' => 'coke');
foreach($foo as $key => $item) {
echo $item.' is begin with ('.$key.')';
}
This needs to be higher
– Jakob Abfalter
Feb 22 '16 at 14:57
add a comment |
$foo = array('a' => 'apple', 'b' => 'ball', 'c' => 'coke');
foreach($foo as $key => $item) {
echo $item.' is begin with ('.$key.')';
}
This needs to be higher
– Jakob Abfalter
Feb 22 '16 at 14:57
add a comment |
$foo = array('a' => 'apple', 'b' => 'ball', 'c' => 'coke');
foreach($foo as $key => $item) {
echo $item.' is begin with ('.$key.')';
}
$foo = array('a' => 'apple', 'b' => 'ball', 'c' => 'coke');
foreach($foo as $key => $item) {
echo $item.' is begin with ('.$key.')';
}
answered Aug 26 '12 at 13:27
Somwang SouksavatdSomwang Souksavatd
2,5301825
2,5301825
This needs to be higher
– Jakob Abfalter
Feb 22 '16 at 14:57
add a comment |
This needs to be higher
– Jakob Abfalter
Feb 22 '16 at 14:57
This needs to be higher
– Jakob Abfalter
Feb 22 '16 at 14:57
This needs to be higher
– Jakob Abfalter
Feb 22 '16 at 14:57
add a comment |
$array = array(0 => 100, "color" => "red");
print_r(array_keys($array));
what's d difference?
– gumuruh
Apr 18 '12 at 9:17
add a comment |
$array = array(0 => 100, "color" => "red");
print_r(array_keys($array));
what's d difference?
– gumuruh
Apr 18 '12 at 9:17
add a comment |
$array = array(0 => 100, "color" => "red");
print_r(array_keys($array));
$array = array(0 => 100, "color" => "red");
print_r(array_keys($array));
answered Jul 23 '10 at 11:58
sushil bharwanisushil bharwani
16.9k2979118
16.9k2979118
what's d difference?
– gumuruh
Apr 18 '12 at 9:17
add a comment |
what's d difference?
– gumuruh
Apr 18 '12 at 9:17
what's d difference?
– gumuruh
Apr 18 '12 at 9:17
what's d difference?
– gumuruh
Apr 18 '12 at 9:17
add a comment |
If it IS a foreach
loop as you have described in the question, using $key => $value
is fast and efficient.
add a comment |
If it IS a foreach
loop as you have described in the question, using $key => $value
is fast and efficient.
add a comment |
If it IS a foreach
loop as you have described in the question, using $key => $value
is fast and efficient.
If it IS a foreach
loop as you have described in the question, using $key => $value
is fast and efficient.
answered Jul 23 '10 at 12:17
DogbertDogbert
152k28240265
152k28240265
add a comment |
add a comment |
If you want to be in a foreach
loop, then foreach($array as $key => $value)
is definitely the recommended approach. Take advantage of simple syntax when a language offers it.
add a comment |
If you want to be in a foreach
loop, then foreach($array as $key => $value)
is definitely the recommended approach. Take advantage of simple syntax when a language offers it.
add a comment |
If you want to be in a foreach
loop, then foreach($array as $key => $value)
is definitely the recommended approach. Take advantage of simple syntax when a language offers it.
If you want to be in a foreach
loop, then foreach($array as $key => $value)
is definitely the recommended approach. Take advantage of simple syntax when a language offers it.
answered Jun 5 '15 at 0:22
Mike LangMike Lang
663
663
add a comment |
add a comment |
Another way to use key($array) in a foreach loop is by using next($array) at the end of the loop, just make sure each iteration calls the next() function (in case you have complex branching inside the loop)
add a comment |
Another way to use key($array) in a foreach loop is by using next($array) at the end of the loop, just make sure each iteration calls the next() function (in case you have complex branching inside the loop)
add a comment |
Another way to use key($array) in a foreach loop is by using next($array) at the end of the loop, just make sure each iteration calls the next() function (in case you have complex branching inside the loop)
Another way to use key($array) in a foreach loop is by using next($array) at the end of the loop, just make sure each iteration calls the next() function (in case you have complex branching inside the loop)
answered Feb 2 '13 at 23:32
B Rad CB Rad C
3271516
3271516
add a comment |
add a comment |
Try this
foreach(array_keys($array) as $nmkey)
{
echo $nmkey;
}
add a comment |
Try this
foreach(array_keys($array) as $nmkey)
{
echo $nmkey;
}
add a comment |
Try this
foreach(array_keys($array) as $nmkey)
{
echo $nmkey;
}
Try this
foreach(array_keys($array) as $nmkey)
{
echo $nmkey;
}
edited Nov 8 '16 at 11:09
answered Jun 1 '16 at 12:27
ChamandeepChamandeep
9916
9916
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f3317856%2fphp-get-key-from-array%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
11
Whats wrong with
foreach($array as $key => $value)
? Or, asked the other way around, what's the point usingforeach($array as $value)
when you actually need$key
somewhere down the road?– Tomalak
Jul 23 '10 at 12:10
2
I just thought it could be a good idea to get the key in a quick way
– Industrial
Jul 23 '10 at 12:12
1
But you do get it in a quick way with
foreach($array as $key => $value)
... :-) Or is the situation not that you are in a foreach loop?– Tomalak
Jul 23 '10 at 12:14
I am in a foreach loop for sure, but what i've thought about was to not change the foreach statement, but just printing out the key.
– Industrial
Jul 23 '10 at 12:21
3
Every function call you could make would be less efficient than simply changing to the appropriate foreach loop construct.
– Tomalak
Jul 23 '10 at 13:48