【发布时间】:2019-08-30 11:39:39
【问题描述】:
我有一个关联数组,我需要从中创建一个新数组。我的目标是新数组的峰值。要为新数组选择一个值,它需要高于数组中的前一个值和下一个值。
我在网上搜索并找到了一个可以处理索引数组情况的函数 - 但不适用于关联数组。这是我想要的:
$array = array('a' => 0, 'b' => 2, 'c' => 1, 'd' => 2, 'e' => 3);
$result = array('b' => 2, 'e' => 3);
可用于索引数组的函数如下所示:
$a = array(0, 2, 1, 2, 3);
$b = array_filter($a, function($v, $k) use($a) {
return $k > 0 && $v > $a[$k-1] && $k + 1 < count($a) && $v > $a[$k+1];
}, ARRAY_FILTER_USE_BOTH );
这个函数也不包含最后一个值。
【问题讨论】:
-
$result = array('b' => 2, 'e' => 3); - 是不正确的。代码边框项中的条件返回 false。只有 b 是正确的
标签: php arrays filtering associative-array