【发布时间】:2020-03-20 11:17:01
【问题描述】:
我有一个这样的数组:
$array = (
[0] => stdClass Object
(
[ID] => 420
[name] => Mary
)
[1] => stdClass Object
(
[ID] => 10957
[name] => Blah
)
)
...
我找到了一些使用循环搜索的解决方案,如下所示:
$item = null;
foreach($array as $struct) {
if ($v == $struct->ID) {
$item = $struct;
break;
}
}
由于数据量大,想改一下,这样就可以一次检索多个值而不是一个值(例如:$array->420 = Mary, $array->10957 = Blah ,...)。在这种情况下,哪种方式最理想?
【问题讨论】:
-
在一个新数组中收集这些值。
-
如果你的ID是唯一的,那么我会用它们替换原始数组的键,这样你就可以直接访问
$array[420],或者使用isset查看特定键是否是设置,当您需要查找具有特定 ID 的元素是否存在时。 array_combine 和 array_column 的组合有助于相应地修改数组。 -
看起来类似于:stackoverflow.com/q/4742903/2943403(署名很好)
-
您的对象是否只有 ID 和名称?或者你那里有更多你需要的东西(你在这个问题中省略了)?
-
看起来你想要这个的倒数:stackoverflow.com/q/25994438/2943403
标签: php