【问题标题】:How to print array value by variable's value?如何按变量的值打印数组值?
【发布时间】:2016-02-03 10:20:23
【问题描述】:
$productDetail['product']['id']='1324652'; 
$variable = "productDetail['product']['id']";

如何在 php 中使用“$variable”打印“$productDetail['product']['id']”的值?

【问题讨论】:

  • 你的意思是把数组元素的值赋给$variable?那就是$variable= $productDetail['product']['id']; print $variable;
  • 就像我们在下面的例子中使用 $$ Lke $a = 'name'; $$a = "保罗";回声$名称;输出是保罗
  • 抱歉,您的评论不符合您最初的问题,您能否更好地解释一下您真正想要达到的目标?
  • 听起来您正在尝试使用variable variables 访问嵌套数组键。据我所知,这是行不通的。 $variable 中字符串的来源是什么?必须有更好的方法来解决这个问题。

标签: php arrays variables


【解决方案1】:

不是好办法,给你一个参考

$productDetail['product']['id']='1111';
$productDetail['product']['idd']['id']='2222'; 

$variable = "productDetail['product']['idd']['id']";
$variable_new = parse_variable($variable);

$re = $$variable_new[0];
if( count($variable_new) > 1 ){
    // loop $variable_new to get next data, one by one
	for( $i = 1; $i < count($variable_new); $i++ ){
		$re = $re[$variable_new[$i]];
	}
}
var_dump( $re );exit;

// parse variable to array
function parse_variable($variable){
	// return $variable if there no [
	if( !strpos($variable, '[') ){
		return array(0 => $variable);
	}

	// parse variable to array
	$variables = explode('[', $variable);
	$new_variables = '';
	foreach( $variables as $variable ){
		$variable = str_ireplace("'", '', $variable);
		$variable = str_ireplace("]", '', $variable);
		$new_variables[] = $variable;
	}
	return $new_variables;
}

【讨论】:

  • 感谢 suibber,这是我真正想要的完美。但是字符串输入是动态的,来自用户输入,所以我怎样才能让它像使用一样动态输入“productDetail['product']['id']”或只是“productDetail['product']”或“productDetail['产品']['id']['id']"
  • 我编辑了我的答案,你可以循环用户输入来获取数据
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
  • 2014-05-13
  • 2021-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多