我有一个数组$ presettings 的print_r($预设置);输出:
Array (
[0] => stdClass Object (
[uuid] => xxx-1ef8-aac6-xxx-xxx
[name] => etime
[owner] => eder112T Resident
[online] => 1
[channel] => 63b525ae-xxx-3555-1c74-xxx
[owner_uuid] => a371751c-eb77-xxx-899c-xxx
[simname] => Plainfield
[slurl] => xxx://xxx/xx/xx/243/24/xx/?title=xx
[design] => 2
[msg_oftheday] => two
[machine_name] => one
[autopay] =>
[autolog_leave] =>
[autolog_offline] =>
[allow_activation] =>
)
)
现在我想获得一个特殊的密钥:
echo "test output : "$presettings['machine_name']." testend";
outputs "" (nothing).
我的方法看起来像这样
function preloadSettingsFromMYSQL($ownername,$prim_uuid)
{
$result = $this->instance->get_rows("SELECT * FROM etime_rims where owner='".$ownername."' AND uuid='".$prim_uuid."'");
return $result;
}
$ result是一个对象数组,也尝试使用$ presettings-> machine_name,也没用。
错误在哪里? 谢谢。
答案 0 :(得分:0)
你的对象是多维的,所以只需添加一个级别
$presettings[0]->machine_name;
另外请注意,此处有一个对象,而不是数组,请不要尝试使用范围访问对象。
答案 1 :(得分:0)
如果仔细查看print_r结果,可以看到那里有0,这意味着这些值不是直接在$presettings
中,而是实际上在$presettings
的第一个元素中。
试试吧:
$presettings[0]->machine_name
答案 2 :(得分:0)
在您的数组中,您在索引stdClass Object
处有0
。您正在寻找访问对象的变量,这是一种与数组略有不同的语法:
echo $presettings[0]->machine_name;