【问题标题】:PHP - Pass string as object array's indexPHP - 将字符串作为对象数组的索引传递
【发布时间】:2017-07-12 11:05:31
【问题描述】:

我想在将它的索引作为字符串传递后获取数组值。

$array = $user->challengeWeek;
$arrayIndex = 'challenge->languages[0]->title';

foreach($array as $a){
    echo $a->$arrayIndex . '<br/>;
}

有什么建议吗?

【问题讨论】:

  • -&gt; 表示对象。确保您了解其中的区别。

标签: php arrays object


【解决方案1】:

您需要一次处理路径的一个元素,您不能直接访问它。 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] does not exist on this collection instance.
  • 那么你正在接受它的对象和你试图访问的路径不匹配。
猜你喜欢
  • 1970-01-01
  • 2013-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多