我想在将索引作为字符串传递后获取数组值。PHP - 传递字符串作为对象数组的索引
$array = $user->challengeWeek;
$arrayIndex = 'challenge->languages[0]->title';
foreach($array as $a){
echo $a->$arrayIndex . '<br/>;
}
对此有何建议?
我想在将索引作为字符串传递后获取数组值。PHP - 传递字符串作为对象数组的索引
$array = $user->challengeWeek;
$arrayIndex = 'challenge->languages[0]->title';
foreach($array as $a){
echo $a->$arrayIndex . '<br/>;
}
对此有何建议?
您需要一次处理路径的一个元素,但不能直接访问它。一个array_reduce
在这里做的很好:
function getValueFromPath($o, array $path) {
return array_reduce(
$path,
function ($o, $key) { return is_array($o) ? $o[$key] : $o->$key; },
$o
);
}
$path = ['challenge', 'languages', 0, 'title'];
foreach ($array as $a) {
echo getValueFromPath($a, $path);
}
谢谢。它给我一个错误:在这个集合实例中不存在“Property [0]”。 –
然后,您正在尝试访问它的对象和您尝试访问的路径不匹配。 – deceze
' - >'表示对象。确保你了解差异。 –