繁体   English   中英

如何从PHP中的多维数组检索值

[英]How to retrieve value from multi-dimenionsal array in PHP

在PHP中,如何将标识符传递给函数以从多维数组中检索值? 使用以下功能,如何使用$ identifier变量返回“ Female”?

function phrase($identifier) {
  $lang = array();
  $lang['settings']    = 'Personal settings';
  $lang['entergender'] = 'Please select your gender';
  $lang['gender']['m'] = 'Male';
  $lang['gender']['f'] = 'Female';

  return $lang[$identifier];
}

phrase('gender/f');//obviously this won't work

您可以编写可变参数函数来请求多个数组维度。 然后,您将使用每个维度的键作为参数来调用函数。

下面的代码使用func_num_args()func_get_arg()迭代传递给函数的参数。

function phrase() {
  $lang = array();
  $lang['settings']    = 'Personal settings';
  $lang['entergender'] = 'Please select your gender';
  $lang['gender']['m'] = 'Male';
  $lang['gender']['f'] = 'Female';
  $lang['foo']['bar']['baz'] = 'Hello!';

  $val = $lang;
  for ($i = 0; $i < func_num_args(); $i++) {
    $val = $val[func_get_arg($i)];
  }

  return $val;
}

print phrase('settings');
print phrase('gender', 'f');
print phrase('foo', 'bar', 'baz');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM