【问题标题】:How can I access a property of an object in php by its index location如何通过索引位置访问 php 中对象的属性
【发布时间】:2015-09-21 08:29:15
【问题描述】:

在我的代码中,我想使用索引值访问 PHP 中对象的属性,我可以使用名称而不是索引值来访问它:

我可以这样做:

foreach($object as $row)
{
echo $row['type'];
}

我想要这样的东西:

foreach($object as $row)
{
echo $row[0];
}

【问题讨论】:

  • 如果您使用过 mysql_fetch_assoc,请改用 mysql_fetch_array。
  • 是的,如果我们使用 MySql 作为后端,那很容易。我在后端使用 mongo db,
  • 您想描述您的问题吗?为什么需要数字索引?
  • 我使用 mongo db 作为后端,所以每个文档的属性名称可能会改变,所以我需要通过索引值而不是索引名称来访问它们

标签: php oop object


【解决方案1】:

试试这个:

$arr = array_values((array) $object);
foreach ($arr as $row) 
{
    echo $row[0];
}

更新:

我认为,在您的情况下,您必须将每一行转换为数组,如下所示:

foreach ($object as $row) 
{
    $row = array_values((array) $row);
    echo $row[0];
}

【讨论】:

  • 不,它不起作用。我已经尝试将对象转换为数组,但数组的索引为 $a['type'] 而不是 $a[0]
  • 在调用array_values 后你有索引type 吗?
  • 我的代码是:$object =array($object); foreach($object as $row) { print_r($row); } 那么索引是 values{"_id", "values"} 而不是 {0,1 etc}
  • @OmkarFrozen Wrap $object =array($object)array_values() 就像我的回答一样
  • 这是我得到的错误“不能使用 MongoCursor 类型的对象作为数组。”
【解决方案2】:

试试这个:

$object = array_values($object);

foreach($object as $row)
{
echo $row[0];
}

【讨论】:

  • 这会引发警告:“警告:array_values() 期望参数 1 为数组,给定对象”并返回 NULL
猜你喜欢
  • 2019-02-13
  • 2015-07-26
  • 1970-01-01
  • 2016-05-09
  • 2010-12-12
  • 1970-01-01
  • 1970-01-01
  • 2017-04-15
  • 2016-12-04
相关资源
最近更新 更多