On Thu, Oct 08, 2009 at 06:08:48PM -0700, Daevid Vincent wrote: > I feel like a total newb asking this, but I'm just having a brain fart or > something... > > I'm writing a page where I can either get back a list of items: > > Array { > [1233] => "apple", > [6342] => "apricot", > [2345] => "banana", > ... > } > > where the user then refines it by choosing one single item and a single > element array is returned like this: > > Array { > [8575] => "peach", > } > > How can I get this $item so I can print it like so: > > echo "The ID is $id and the name is $name"; > > Normally with an array of items, I do a: > > foreach ($item as $id => $name) echo... > > But that seems overkill for this scenario. > > The rub is that I don't know the "id", so I can't use $item[0], and I also > don't have something like $item['name'] to use either. > > There's got to be an easy way to extract those. > > list($id, $name) = $operator; > > Felt like it would work for a minute (wishful thinking). If you don't know the index, then you really have no choice but to iterate through the POST array (if I understand you correctly). One problem I see is that you're using an integer for your index. The way I normally do things like this is to provide a prefix for the index. Like this: $items = array('fruit_1233' => 'apple', 'fruit_6342' => 'apricot', 'fruit_2345' => 'banana', 'fruit_8575' => 'peach'); Then, out of all the POST members returned, I can pick out the ones pertaining to fruit by simply looking for ones which have the 'fruit_' prefix as their index. It tends to be clunky, but it's the only way I've found to make it work: $fruits = get_fruits_from_table(); foreach ($fruits as $key => $value) { $index = 'fruit_' . $key; if (isset($_POST[$index])) { echo "The user wants fruit #$key, $value."; } } Paul -- Paul M. Foster -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php