php - 动态生成打印变量的名称
问题描述
=我需要在两种变体(一维和二维数组)中打印“目标值”。通过动态生成打印变量的名称。我找到了有关该主题的信息,但这里的所有内容都是关于简单变量的。但是,就我而言,我必须使用一个数组。 https://www.php.net/manual/en/language.variables.variable.php
类似的东西,这是我的代码......
//case One
$array = [
0 => 'value',
1 => 'value',
2 => 'targetValue'
];
//case Two
$array = [
0 => [
0 => 'value',
1 => 'value',
2 => 'targetValue',
],
1 => [
0 => 'value',
1 => 'value',
2 => 'targetValue',
],
2 => [
0 => 'value',
1 => 'value',
2 => 'targetValue',
]
];
if(array is two-dimensional){
$name = 'array[0][2]';
}else{
$name = 'array[2]';
}
echo $$name;
EXAMPLE 2
$params['criteria'] = 'TargetValue';
$name = "['criteria']";
$test = "Params" . $name;
var_dump($$test);
result:Undefined variable: params['criteria'] (without "$" -
我不知道为什么)
OR EXAMPLE 3
$params['criteria'] = 'TargetValue';
$name = "params['criteria']";
var_dump($$name);
result:Undefined variable: params['criteria'] (without "$" -
我不知道为什么)
这可能吗?
解决方案
试试这个:
if (count($array) == count($array, COUNT_RECURSIVE) {
$name = $array[2];
} else {
$name = $array[0][2];
}
echo $name;
(更新)
我认为你想要的是这样的例子:
$params['criteria'] = 'TargetValue';
$name = ${'params'}['criteria'];
var_dump($name);
这将返回:string(11) "TargetValue"
然后它是两者的混合,假设你是初始数组(案例 1 和 2)
if (count($array) == count($array, COUNT_RECURSIVE) {
$name = ${'array'}[2];
} else {
$name = ${'array'}[0][2];
}
var_dump($name);
推荐阅读
- docker - Jenkins 多代理在幕后构建切换目录,防止 AWS CodeDeploy 插件压缩构建文件
- azure - 在datafactory中处理excel表
- asp.net-mvc - Web Garden 的行为因应用程序池标识上的用户设置而异
- python - Scapy Python 3 错误:警告找不到路由(没有默认路由?)
- python - 如何将 jq 的值行转换为 JSON 输出?
- reactjs - 如何使用 Mobx6 制作 RootStore
- python-3.x - 1 值与先前元素的类型不同 python pandas
- image - 当我设置 LoggingMode = 'disk' 时,为什么 MATLAB videoinput 会写入 RAM?
- python - 尽管存在元素,但 selenium WebDriverWait for element to appear 已超时
- python - 如何修复错误“dict”对象没有属性“to_csv”