| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- <?php
- namespace addons\StarChain\common\helpers;
- use yii\helpers\BaseArrayHelper;
- /**
- * 数组助手类
- *
- * @package addons\StarChain\common\helpers
- */
- class ArrayHelper extends BaseArrayHelper
- {
- /**
- * 返回数组中经过测试成功的第一个元素
- * 1. 如果没有测试函数, 那么返回数组第一个元素
- * 2. 如果没有测试函数,也没有数组元素,则返回默认值
- * 3. 如果有测试函数,则返回第一个测试成功的元素
- * 4. 如果有测试函数,但是测试都是不通过,则返回默认值
- * @param array $array
- * @param callable|null $callback
- * @param mixed $default
- * @return mixed
- */
- public static function first($array, callable $callback = null, $default = null)
- {
- if (is_null($callback)) {
- if (empty($array)) {
- return value($default);
- }
- foreach ($array as $item) {
- return $item;
- }
- }
- foreach ($array as $key => $value) {
- if ($callback($value, $key)) {
- return $value;
- }
- }
- return value($default);
- }
- }
|