我有一个对象形式的变量堆栈:
我还有一组数据,如果适用,我想替换这些值。该数组具有以下内容:让我们调用数组$ stats
我一直试图完成的(这是使用双变量,如果在数组中,则将原始对象堆栈中的值替换为更新值。
foreach ($stats as $key => $value) {
$data = "people->" . $key;
$$data = "<strong>" . $$data . "</strong>";
}
但是,它看起来不应该起作用,并且不像我希望的那样干净。有没有更好的方法来处理这样的事情?
感谢您提供的任何帮助。
^^^
更新
基本上我试图包围变量,如果变量出现在数组中。并且,然后让它像原始值一样打印,除了缠绕它。
答案 0 :(得分:1)
foreach ($arrayvariable as $key => $val) {
$value->$key = "<strong>" . $value->$key . "</strong>";
}
我怀疑你的意思
$$data = "<strong>" . $value . "</strong>";
在你的问题中,这将转化为
$value->$key = "<strong>" . $val . "</strong>";
答案 1 :(得分:0)
$value = new stdClass();
$value->one = 1;
$value->two = 2;
$value->three = 3;
$value->four = 4;
$arr = array();
$arr['one'] = 11;
$arr['four'] = 14;
foreach($value as $key => &$val){
if(isset($arr[$key])) {
$val = $arr[$key];
}
}
var_dump($value); // object(stdClass)#1 (4) { ["one"]=> int(11) ["two"]=> int(2) ["three"]=> int(3) ["four"]=> &int(14) }
答案 2 :(得分:0)
如果$obj
是您的对象,则可以执行此操作。
$key = 'four';
echo $obj->$key;