php提取对象亲戚

时间:2013-07-13 17:30:40

标签: php object

我有两个来自数据库查询的对象。我将它们限制在视图所需的最小值。它们看起来像这样:

array(189) {
  [0]=>
  object(stdClass)#31 (2) {
    ["id"]=>
    string(1) "187"
    ["name"]=>
    string(13) "Something"
  }
}

array(3) {
  [0]=>
  object(stdClass)#337 (10) {
    ["id"]=>
    string(1) "1"
    ["type"]=>
    string(1) "2"
    ["for"]=>
    string(3) "187"
    ...
  }
}

我在foreach循环中运行第二个对象。我想将“for”引用到第一个的“id”,并返回“name”,从而产生“Something”。我尝试至少使用索引失败了,但我想避免使用索引。

我想使用我的第二个对象的值“for”,将它链接到我的第一个对象的“id”,并输出匹配的“name”,在我的情况下是“Something”。我如何实现这一目标?

谢谢!

1 个答案:

答案 0 :(得分:1)

这个问题有点不清楚,但听起来你想从id等于"187"的第一个数组中找到对象,这样你就可以访问它的其他属性了吗?

除非第一个数组的键是对象的id号(当前不是),否则你需要遍历第一个数组的每个项并测试它的id属性,直到找到你想要的那个。换句话说,一个嵌套循环。

重建第一个数组也许更好。另一种方法是创建第一个键入id而非自动生成的顺序键的数组。这样您就可以轻松访问所需的项目而无需进行搜索(例如$first[$id]['name'])。适当的方法取决于需要执行此查找操作的频率和数组的大小。

如果保证id是唯一的,那么像这样的事情可以预先处理数组,使其键入id属性:

// $array189 is the first array from your question
$first = array();
foreach ($array189 as $item) {
    $first[ $item->id ] = $item;
}
unset($array189);