解决“ foreach”语法中“ key”的异常行为

时间:2019-05-09 17:57:35

标签: php arrays

我注意到此代码段中的行为异常。

<?php
    $taxonomy = array(
        array('index' => array('AU200_AUD','CN50_USD')),
        array('mt' => array('XAG_GBP','XAG_HKD','XAU_GBP','XAU_HKD','XAU_JPY')),
        array('aud' => array('AUD_CAD','AUD_CHF','AUD_HKD','AUD_JPY','AUD_NZD','AUD_SGD','AUD_USD')),
        array('cad' => array('CAD_CHF','CAD_HKD','CAD_JPY','CAD_SGD','CHF_HKD','CHF_JPY','CHF_ZAR')),
        array('eur' => array('EUR_AUD','EUR_CAD','EUR_CHF','EUR_NOK','EUR_NZD','EUR_PLN','EUR_ZAR')),
        array('gbp' => array('GBP_AUD','GBP_CAD','GBP_CHF','GBP_USD','GBP_ZAR')),
        array('hkd' => array('HKD_JPY')),
        array('nzd' => array('NZD_CAD','NZD_CHF','NZD_HKD','NZD_JPY','NZD_SGD','NZD_USD')),
        array('sgd' => array('SGD_CHF','SGD_HKD','SGD_JPY')),
        array('try' => array('TRY_JPY')),
        array('usd' => array('USD_CAD','USD_CHF','USD_CNH','USD_SGD','USD_THB','USD_TRY','USD_ZAR')),
        array('zar' => array('ZAR_JPY')),
      );

      foreach ($taxonomy as $key => $tax) {
        foreach ($tax as $value => $val) {
          if(array_search('USD_CAD', $val)) $taxonomy = key($tax);
        }
      }
    echo($taxonomy);

这就是发生的情况。如果在array(0)上搜索值,它将返回Array作为值。如果搜索其他数组元素,它将返回所需的索引。

任何人都可以通过一种解决方案来帮助我搜索数组的任何值,并且不介意索引并仍然获得键。请参见下面的示例。

if(array_search('USD_CAD', $val)) $taxonomy = key($tax); //returns Array
if(array_search('SGD_HKD', $val)) $taxonomy = key($tax); //returns sgd

0 个答案:

没有答案