当子键等于PHP中的特定值时检索键

时间:2014-08-06 07:42:23

标签: php arrays

是否比:

更简单
foreach ($array as $key => $value) {
    if($value['date']->ID == 22) { echo $key; }
}

用于搜索ID->22(每个ID是唯一的)然后如果存在,则返回父键?在这种情况下,它将是关键0:

Array
(
    [0] => Array
        (
            [date] => WP_Post Object
                (
                    [ID] => 22                    
                )

        )
    [1] => Array
        (
            [date] => WP_Post Object
                (
                    [ID] => 33                    
                )

        )

)

只是好奇是否有一种不那么密集的方式,因为它必须在任何给定的页面上做很多。如果没有,一次运行700个这样的循环是否可行?

1 个答案:

答案 0 :(得分:1)

此答案未涉及此问题的Is there a simpler than:部分。 foreach循环很可能是最简单的方法。我在答案is [there] a less intensive way of doing this的底部将您的问题作为真正的问题。

正如评论中所提到的,当你有结果时,可以使用break退出循环,停止任何进一步的不必要的处理。

foreach($array as $key => $value)
{
    if ($value->ID === 22)
    {
        echo $value->ID;
        break;
    }
}

对结果进行排序也会对此类循环的性能产生重大影响。当您引入条件逻辑时,处理器会在知道$value->ID的实际值之前尝试预测语句的结果。如果你允许它预测这个,你可以使循环更快。这称为分支预测。关于这个here会有很好的答案,可以帮助你。