【发布时间】:2019-01-18 13:22:50
【问题描述】:
我正在寻找一种优雅的方式来获取满足给定条件的数组的第一个(也是唯一一个)元素。
简单示例:
输入:
[
['value' => 100, 'tag' => 'a'],
['value' => 200, 'tag' => 'b'],
['value' => 300, 'tag' => 'a'],
]
条件:$element['value'] > 199
预期输出:
['value' => 200, 'tag' => 'b']
我自己想出了几个解决方案:
遍历数组,检查条件并在找到时中断
-
使用 array_filter 应用条件并获取过滤后的第一个值:
array_values( array_filter( $input, function($e){ return $e['value'] >= 200; } ) )[0];
两者似乎都有点麻烦。有没有人有更清洁的解决方案?我是否缺少内置的 php 函数?
【问题讨论】:
-
你能解释一下吗?
-
“遍历数组,检查条件并在找到时中断”是最干净、最快的解决方案。
标签: php array-filter