我希望在将索引作为字符串传递后获取数组值。
$array = $user->challengeWeek;
$arrayIndex = 'challenge->languages[0]->title';
foreach($array as $a){
echo $a->$arrayIndex . '<br/>;
}
对此有何提示?
答案 0 :(得分:0)
您需要一次处理路径的一个元素,不能直接访问它。 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);
}