我有一个对象数组,我想计算给定值的前一个和下一个索引的数量,直到某个最大数量。
Array
(
[0] => stdClass Object
(
[id] => 460
)
[1] => stdClass Object
(
[id] => 484
)
[2] => stdClass Object
(
[id] => 485
)
[3] => stdClass Object
(
[id] => 486
)
[4] => stdClass Object
(
[id] => 489
)
[5] => stdClass Object
(
[id] => 501
)
[6] => stdClass Object
(
[id] => 654
)
案例:最大数量为2
[0]
),下一个索引计数为2 (如[1]
和[2]
)[0]
和[1]
)且下一个索引计数是2 (作为[3]
和[4]
)[3]
和[4]
),并且下一个索引计数是1 (如[6]
)[4]
和[5]
),下一个索引计数是0 (作为[6]
)当给出数组,值和最大计数时,如何获得这两个计数?
答案 0 :(得分:1)
您似乎想知道元素之前和之后是否有2个元素与您搜索的值,如果没有,有多少元素(0或1)。
以下是您可以使用的功能:
pm2 start gulpfile.js --watch
它将返回两个值(作为数组),即那些prev和next值。如果找不到您要查找的值,则两者都返回-1。
以下是你如何称呼它:
function getPrevNext($arr, $find, $max = 2) {
foreach($arr as $i => $obj) {
if ($obj->id == $find) {
return [min($max, $i), min($max, count($arr) - 1 - $i)];
}
}
return [-1, -1]; // not found
}