Solved

# Get value from associative array without key...

Posted on 2010-11-30
485 Views
Given an array like this, where I don't know the key name, how can I extract the value of both elements (AL, Alabama)?

Array
(
[abbreviation] => AL
[full_name] => Alabama
)

0
Question by:interclubs
• 2
• 2

LVL 11

Expert Comment

ID: 34241258
you cannot unless you know the array variable's name in which case you would extract the values like \$name['abbreviation']['full_name'];
0

LVL 14

Expert Comment

ID: 34241613
If you mean that you don't know the key names (abbreviation, full_name) you can do something like this:

foreach (\$array_name as \$value){

\$x[] = \$value;
}

That would give you an array of two elements in your example where \$x[0] = 'AL' and \$x[1] = 'Alabama'.

If you don't know the name of the actual array (\$array_name) in my example, I have no idea how you would find the values.
0

LVL 1

Accepted Solution

jebpotly earned 500 total points
ID: 34241967
array_keys will give you a list of the keys in an array.

If you have:

``````\$my_array = array('abbreviation' => 'AL', 'full_name' => 'Alabama');
``````

then you could use array_keys:
``````\$my_keys = array_keys(\$my_array);
``````

which would give you an array of Array ( [0] => abbreviation [1] => full_name ). You could then do
``````\$first_value = \$my_array[\$my_keys[0]];
\$second_value = \$my_array[\$my_keys[0]];
``````

Or you could convert the array to use numeric indexes instead of string indexes. One way to do this is use the sort() method. So if you have the \$my_array as defined above then you could do:
``````sort(\$my_array);
``````
Now \$my_array is Array ( [0] => Alabama [1] => AL) and you can use [0] and [1] to get the values.
``````\$first_value = \$my_array[0];
\$second_value = \$my_array[1];
``````
0

LVL 11

Expert Comment

ID: 34243985
@jebpotly: Sweet, did not know about "array_keys(\$my_array);" Thanks
0

LVL 1

Expert Comment

ID: 34244028
;)
0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question