# 数组助手函数
### [](https://octobercms.com/docs/services/helpers#arrays)数组
#### [](https://octobercms.com/docs/services/helpers#method-array-add)`array_add()`
如果`array_add`给定键/值对在数组中不存在,则该函数将其添加到数组:
~~~
$array = array_add(['name' => 'Desk'], 'price', 100);
// ['name' => 'Desk', 'price' => 100]
~~~
#### [](https://octobercms.com/docs/services/helpers#method-array-divide)`array_divide()`
该`array_divide`函数返回两个数组,一个包含键,另一个包含原始数组的值:
~~~
list($keys, $values) = array_divide(['name' => 'Desk']);
// $keys: ['name']
// $values: ['Desk']
~~~
#### [](https://octobercms.com/docs/services/helpers#method-array-dot)`array_dot()`
该`array_dot`函数将多维数组展平为使用“点”符号表示深度的单级数组:
~~~
$array = array_dot(['foo' => ['bar' => 'baz']]);
// ['foo.bar' => 'baz'];
~~~
#### [](https://octobercms.com/docs/services/helpers#method-array-undot)`array_undot()`
该`array_undot`功能是该`array_dot`方法的对立部分。它将点标记的数组转换为标准的关联数组:
~~~
$array = array_undot([
'foo.bar' => 'baz'
]);
// [
// 'foo' => [
// 'bar' => 'baz'
// ]
// ]
~~~
#### [](https://octobercms.com/docs/services/helpers#method-array-except)`array_except()`
该`array_except`方法从数组中删除给定的键/值对:
~~~
$array = ['name' => 'Desk', 'price' => 100];
$array = array_except($array, ['price']);
// ['name' => 'Desk']
~~~
#### [](https://octobercms.com/docs/services/helpers#method-array-first)`array_first()`
该`array_first`方法返回通过给定真值测试的数组的第一个元素:
~~~
$array = [100, 200, 300];
$value = array_first($array, function ($key, $value) {
return $value >= 150;
});
// 200
~~~
还可以将默认值作为第三个参数传递给该方法。如果没有任何值通过真实性测试,则将返回此值:
~~~
$value = array_first($array, $callback, $default);
~~~
#### [](https://octobercms.com/docs/services/helpers#method-array-flatten)`array_flatten()`
该`array_flatten`方法将把多维数组展平为单个级别。
~~~
$array = ['name' => 'Joe', 'languages' => ['PHP', 'Ruby']];
$array = array_flatten($array);
// ['Joe', 'PHP', 'Ruby'];
~~~
#### [](https://octobercms.com/docs/services/helpers#method-array-forget)`array_forget()`
该`array_forget`方法使用“点”符号从深度嵌套的数组中删除给定的键/值对:
~~~
$array = ['products' => ['desk' => ['price' => 100]]];
array_forget($array, 'products.desk');
// ['products' => []]
~~~
#### [](https://octobercms.com/docs/services/helpers#method-array-get)`array_get()`
该`array_get`方法使用“点”表示法从深度嵌套的数组中检索值:
~~~
$array = ['products' => ['desk' => ['price' => 100]]];
$value = array_get($array, 'products.desk');
// ['price' => 100]
~~~
该`array_get`函数还接受默认值,如果未找到特定键,则将返回该默认值:
~~~
$value = array_get($array, 'names.john', 'default');
~~~
#### [](https://octobercms.com/docs/services/helpers#method-array-only)`array_only()`
该`array_only`方法将只返回给定数组中的指定键/值对:
~~~
$array = ['name' => 'Desk', 'price' => 100, 'orders' => 10];
$array = array_only($array, ['name', 'price']);
// ['name' => 'Desk', 'price' => 100]
~~~
#### [](https://octobercms.com/docs/services/helpers#method-array-pluck)`array_pluck()`
该`array_pluck`方法将从数组中提取给定键/值对的列表:
~~~
$array = [
['developer' => ['name' => 'Brian']],
['developer' => ['name' => 'Stewie']]
];
$array = array_pluck($array, 'developer.name');
// ['Brian', 'Stewie'];
~~~
#### [](https://octobercms.com/docs/services/helpers#method-array-pull)`array_pull()`
该`array_pull`方法返回并从数组中删除键/值对:
~~~
$array = ['name' => 'Desk', 'price' => 100];
$name = array_pull($array, 'name');
// $name: Desk
// $array: ['price' => 100]
~~~
#### [](https://octobercms.com/docs/services/helpers#method-array-set)`array_set()`
该`array_set`方法使用“点”符号在深层嵌套的数组中设置一个值:
~~~
$array = ['products' => ['desk' => ['price' => 100]]];
array_set($array, 'products.desk.price', 200);
// ['products' => ['desk' => ['price' => 200]]]
~~~
#### [](https://octobercms.com/docs/services/helpers#method-array-sort)`array_sort()`
该`array_sort`方法根据给定Closure的结果对数组进行排序:
~~~
$array = [
['name' => 'Desk'],
['name' => 'Chair'],
];
$array = array_values(array_sort($array, function ($value) {
return $value['name'];
}));
/*
[
['name' => 'Chair'],
['name' => 'Desk'],
]
*/
~~~
#### [](https://octobercms.com/docs/services/helpers#method-array-sort-recursive)`array_sort_recursive()`
该`array_sort_recursive`函数使用以下`sort`函数对数组进行递归排序:
~~~
$array = [
[
'Brian',
'Shannon',
'Alec',
],
[
'PHP',
'Ruby',
'JavaScript',
],
];
$array = array_sort_recursive($array);
/*
[
[
'Alec',
'Brian',
'Shannon',
],
[
'JavaScript',
'PHP',
'Ruby',
]
];
*/
~~~
#### [](https://octobercms.com/docs/services/helpers#method-array-where)`array_where()`
该`array_where`函数使用给定的Closure过滤数组:
~~~
$array = [100, '200', 300, '400', 500];
$array = array_where($array, function ($value, $key) {
return is_string($value);
});
// [1 => 200, 3 => 400]
~~~
#### [](https://octobercms.com/docs/services/helpers#method-head)`head()`
该`head`函数仅返回给定数组中的第一个元素:
~~~
$array = [100, 200, 300];
$first = head($array);
// 100
~~~
#### [](https://octobercms.com/docs/services/helpers#method-last)`last()`
该`last`函数返回给定数组中的最后一个元素:
~~~
$array = [100, 200, 300];
$last = last($array);
// 300
~~~
- 基本说明
- 基本操作
- October cms 安装
- 后台控制器路径
- 图标
- 获取安装网上的插件/主题
- 插件构造器使用
- 定时任务
- October后台控制器
- vscode编辑器
- ajax操作
- 使用
- ajax更新组件
- ajax属性API
- JavaScript API
- ajax综合使用
- 主题
- 多语言主题
- 安装市场主题
- 主题程序处理
- 主题
- 页面
- 部件
- 布局
- 内容
- 组件
- 媒体
- 主题表单操作
- 表单使用
- 表单后端程序处理
- 插件
- 自定义插件
- 插件说明
- 插件导航条
- 插件数据库设置
- 插件的设置管理
- 插件的配置文件config
- 组件
- app服务
- app容器
- 扩展行为
- 缓存
- Collection类
- Lazy Collections
- Collection方法
- 助手函数
- 数组助手函数
- 路径助手函数
- 玄乐助手函数
- 其他助手函数
- 错误与记录
- 事件处理
- HTML页面
- 文件与目录操作
- 散列和加密
- 邮件
- 邮件内容
- 邮件发送
- 分页
- 模板解析器
- 动态解析器语法
- 队列消息
- 请求与输入
- 响应
- 视图
- 路由器
- 配置
- 验证操作
- 处理错误消息
- 错误消息与视图
- 可用的验证规则
- 有条件的验证规则
- 验证数组
- 错误消息
- 自定义验证规则
- 模型操作
- 定义模型与其属性
- 检索模型
- 插入与更新
- 删除模型
- 查询范围
- 事件操作
- 关联操作
- 定义关系
- 关系类型
- 多肽关系
- 关系查询
- 渴望加载
- 插入模型
- 数据库操作
- 基本用法
- 数据表结构
- 查询连贯操作
- 结果检索
- select子句
- 插入更新
- where子句
- 排序,分组,限制和偏移
- 文件附件
- Collection操作
- 属性操作
- 系列化json
- 数据库属性
- 数据库行为
- 控制器
- 后台控制器定义
- 后台页面
- 后台组件
- 后台表单
- 表单组件
- 表单视图
- 表单行为
- 后台列表
- 列表行为
- 列表过滤器
- 可用列类型
- 关系行为
- 关系行为类型
- 扩展关系行为
- 列表排序操作
- 导入导出操作
- 用于与权限
- corlate模板修改
- 修改顶部导航
- laravel问题
- 控制器不存在
- 控制器
- 路由组
- laravel笔记
- laravel 安装
- 伪静态配置
- 依赖注入 & 控制器
- 中间件
- 路由文件
- 视图