\App\Http\HelpersArrHelper

数组工具

职责:null 过滤、整行去重、可清空更新载荷归一、树构建与后代收集等 全站重复的数组操作收敛为单一来源。

┌────────────────── 分区导航(按此顺序阅读)──────────────────┐ 分区 1 · 清洗与归一 withoutNulls / uniqueRows / clearableUpdateData 分区 2 · 树构建与后代 buildTree / descendantIds └────────────────────────────────────────────────────────────┘

Summary

Methods
Properties
Constants
withoutNulls()
uniqueRows()
clearableUpdateData()
buildTree()
descendantIds()
No public properties found
No constants found
No protected methods found
No protected properties found
N/A
No private methods found
No private properties found
N/A

Methods

withoutNulls()

withoutNulls(array  $data) : array

过滤 null 值(保留 0/''/false——array_filter 默认会误删这些)

Parameters

array $data

Returns

array —

uniqueRows()

uniqueRows(array  $rows) : array

二维数组按整行去重(覆盖式同步前置归一)

Parameters

array $rows

Returns

array —

clearableUpdateData()

clearableUpdateData(array  $data, string[]  $nullable = [], string[]  $zeroable = [], string[]  $blankable = []) : array

更新载荷归一(可空字段清空语义)。

前端清空字段发显式空值('' 经框架空串转 null 中间件变 null)——「显式提交 null」= 清空, 按列语义落空值;「未提交的键」保持不动(部分更新语义不变)。

Parameters

array $data
string[] $nullable

列 nullable → 清空 = null

string[] $zeroable

列 NOT NULL default 0 → 清空 = 0

string[] $blankable

列 NOT NULL default '' → 清空 = ''

Returns

array —

buildTree()

buildTree(array  $items, int  $parentId) : array

树构建(id/parent_id 两字段,组织/字典共用单源): 返回以 $parentId 为根的子树(children 键挂子级);未找到父级的行归入根(父级可能被过滤)。

Parameters

array $items
int $parentId

Returns

array —

descendantIds()

descendantIds(iterable  $rows, int  $rootId) : int[]

后代 id 收集(菜单/字典两处 BFS 同构,收敛为单源)。 输入平铺行(数组或对象,含 id/parent_id 两字段),一次内存 BFS; seen 集保证环数据可终止。返回**不含根自身**的全部后代 id。

Parameters

iterable $rows
int $rootId

Returns

int[] —