Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中动态获取多维数组值?_Php_Arrays_Wordpress - Fatal编程技术网

如何在php中动态获取多维数组值?

如何在php中动态获取多维数组值?,php,arrays,wordpress,Php,Arrays,Wordpress,测试主题获取帖子元(“一个动态id”,“两个动态id”) 你好,, 我想用php创建一个动态函数。但我不能。 我的问题是:我有一个多维数组,我想通过函数动态地获取这些值 比如,如果我在test_theme_get_post_meta()函数中传递一个参数,它将返回第一个DYTITE值,如果我传递两个参数,它将传递第二个DYTITE值。所以我想得到无限的价值 我不想创建案例1、2、3、4等。我希望它是自动的 如果有人知道解决办法,请帮助我 提前感谢这是否实现了您的期望 function test_

测试主题获取帖子元(“一个动态id”,“两个动态id”)

你好,, 我想用php创建一个动态函数。但我不能。 我的问题是:我有一个多维数组,我想通过函数动态地获取这些值

比如,如果我在test_theme_get_post_meta()函数中传递一个参数,它将返回第一个DYTITE值,如果我传递两个参数,它将传递第二个DYTITE值。所以我想得到无限的价值

我不想创建案例1、2、3、4等。我希望它是自动的

如果有人知道解决办法,请帮助我


提前感谢

这是否实现了您的期望

function test_theme_get_post_meta() {
$post_meta = get_post_meta( get_the_ID(), 'test_options', true); // this will return multi dymentional array
$func_args = func_get_args(); // to get func argument
switch (func_num_args()) {
    case 1:   
        if(isset($post_meta[$func_args[0]])) {
           return $post_meta[$func_args[0]];
        }                
        break;

    case 2:                
        if(isset($post_meta[$func_args[0]][$func_args[1]])) {
           return $post_meta[$func_args[0]][$func_args[1]];
        }
        break;

    case 3:                
        if(isset($post_meta[$func_args[0]][$func_args[1]][$func_args[2]])) {
           return $post_meta[$func_args[0]][$func_args[1]][$func_args[2]];
        }
        break;
} } 
非常感谢:)为您的伟大和更简单的解决方案
function test_theme_get_post_meta() {
  $result = get_post_meta( get_the_ID(), 'test_options', true); // this will return multi dymentional array
  foreach (func_get_args() as $arg) {
    if (isset($result[$arg])) {
      $result = $result[$arg];
    }
    else {
      // might want to throw exception or return null if not found
    }
  }
  return $result;
}