Hi, I don't know if this is the right place to ask Drupal related PHP questions, so please bear with me. I've got two arrays and a form like below: /* * This function stuffs currency codes into an array, * check the TCMB XML file for matching records, and * displays the relevant code's exchange rates in a table */ function tcmb_get_currencies() { $tcmb_cur_codes = array( 1 => 'USD', 2 => 'CAD', 3 => 'XDR', 4 => 'DKK', 5 => 'SEK', 6 => 'CHF', 7 => 'NOK', 8 => 'JPY', 9 => 'SAR', 10 => 'KWD', 11 => 'AUD', 12 => 'EUR', 13 => 'GBP', 14 => 'RUB', 15 => 'RON', 16 => 'IRR', 17 => 'BGN', 18 => 'DEM', 19 => 'BEF', 20 => 'LUF', 21 => 'ESP', 22 => 'FRF', 23 => 'IEP', 24 => 'ITL', 25 => 'NLG', 26 => 'ATS', 27 => 'PTE', 28 => 'FIM', 29 => 'GRD' ); $tcmbXML = new DomDocument(); $tcmbXML->load('http://www.tcmb.gov.tr/kurlar/today.xml'); $currency = array(); $rows = array(); $result = variable_get('tcmb_currency', $currency); // Let's find out if $result is a variable if (!is_array($result)) { watchdog('Error: The tcmb_currency variable was not an array.'); drupal_set_message(t('Error: The tcmb_currency variable was not an array.')); return; } foreach ($result as $tcmb) { $tcmb_cur = $tcmb['currency']; $currency[] = $tcmb_cur; $curcode = $tcmb_cur_codes[$tcmb_currency]; $buy = $tcmbXML->getElementsByTagName('ForexBuying')->item($tcmb_cur)->nodeValue; $sell = $tcmbXML->getElementsByTagName('ForexSelling')->item($tcmb_cur)->nodeValue; $rows[] = array($curcode, $buy, $sell); } $header = array('', t('BUYING'), t('SELLING')); $output = theme('table', $header, $rows); return $output; } ... ... ... /* * This function generates the form and allows the admin to set the currency code(s). */ function tcmb_settings_form() { $form = array(); $form['tcmb_currency'] = array( '#title' => t('Currency code'), '#default_value' => variable_get('tcmb_currency', array()), '#type' => 'checkboxes', '#options' => array(1 => t('American Dollar'), 2 => t('Canadian Dollar'), 3 => t('Special D. Rights'), 4 => t('Danish Krone'), 5 => t('Swedish Krona'), 6 => t('Swiss Franc'), 7 => t('Norwegian Krone'), 8 => t('Japanese Yen'), 9 => t('Saudi Arabian Riyal'), 10 => t('Kuwaiti Dinar'), 11 => t('Australian Dollar'), 12 => t('Euro'), 13 => t('Great Britain Pounds'), 14 => t('Russian Ruble'), 15 => t('Romanian Leu'), 16 => t('Iranian Riyals'), 17 => t('Bulgarian Lev'), 18 => t('German Marc'), 19 => t('Belgian Franc'), 20 => t('Luxembourgian Franc'), 21 => t('Spanish Peseta'), 22 => t('French Franc'), 23 => t('Irish Pound'), 24 => t('Italian Lira'), 25 => t('Dutch Guilder'), 26 => t('Austrian Schilling'), 27 => t('Portuguese Escudo'), 28 => t('Finnish Mark'), 29 => t('Greek Drachma')), ); return system_settings_form($form); }; As you can see, I'm trying to return a table with the relevant rates in it. However, whatever I check, I get USD rates, and also it lists all 29 values (all USD by the way) even if there are only 2. What do I need to do? Regards,