PHP 数组辅助函数
2023-09-11 14:16:54 时间
/**
* 取多维数据中某字段的值
* @param array $array 数据源数组
* @param string|array $field 要获取的字段
* @return array 结果数组
*/
function array_muliti_field($array, $field)
{
$resp = [];
foreach($array as $k => $v) {
if(is_array($field)) {
foreach($field as $f) {
if(isset($v[$f]) && $v[$f] !== null) {
$resp[$f][$v[$f]] = $v[$f];
}
}
} elseif(isset($v[$field]) && $v[$field] !== null){
$resp[] = $v[$field];
}
}
return $resp;
}/**
* 将多维数组中的某一个元素作为键名,重新生成数组
*
* $array = [
* 0 => ['id'=>10, 'title'=>'t10'],
* 1 => ['id'=>11, 'title'=>'t11']
* ];
*
* $res = array_set_key($array, 'id');
*
* 结果如下:
* $res = [
* 10 => ['id'=>10, 'title'=>'t10'],
* 11 => ['id'=>11, 'title'=>'t11']
* ];
*
* @param array $array 要处理的数组
* @param string $key 作为 key 的字段名称
* @param string $valuekey [description]
* @return array 新生成的数组
*/
function array_set_key($array, $key = '', $valuekey = '')
{
$res = [];
while (list($k, $v) = each($array)) {
if ($key == '') {
$res[] = (($valuekey != '') ? $v[$valuekey] : $v);
} else {
$res[$v[$key]] = (($valuekey != '') ? $v[$valuekey] : $v);
}
}
reset($array);
return $res;
}/**
* 将多维数组中的某两个元素作为键名组成二维数组
* $array = [
* 0 => ['id'=>10,'title'=>'t10'],
* 1 => ['id'=>11,'title'=>'t11'],
* 2 => ['id'=>11,'title'=>'t12']
* ];
*
* $res = array_set_keys($array, 'id', 'title');
*
* 结果如下:
* $res = [
* 10 => [
* 't10' => ['id'=>10,'title'=>'t10']
* ],
*
* 11 => [
* 't11' => ['id'=>11,'title'=>'t11'],
* 't12' => ['id'=>11,'title'=>'t12']
* ]
* ];
* @param [type] $array [description]
* @param [type] $key1 [description]
* @param string $key2 [description]
* @param string $valuekey [description]
* @return [type] [description]
*/
function array_set_keys($array, $key1, $key2 = '', $valuekey = '')
{
$res = [];
while (list($k, $v) = each($array)) {
$k1 = $v[$key1];
$vl = ($valuekey != '') ? $v[$valuekey] : $v;
if ($key2 == '') {
$res[$k1][] = $vl;
} else {
$res[$k1][$v[$key2]] = $vl;
}
}
reset($array);
return $res;
}
相关文章
- php 使用str_replace替换关键词(兼容字符串,一维数组,多维数组)
- PHP简单 对象(object) 与 数组(array) 的转换
- 如何删除PHP数组中的元素,并且索引重排(unset,array_splice)?
- 通过PHP current()函数获取未知字符键名数组第一个元素的值
- PHP数组函数: array_walk()与 array_map() 的区别
- PHP数组函数: array_walk()
- PHP数组常用函数
- PHP如何判断一个数组是一维数组或者是二维数组?用什么函数?
- PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数详解
- PHP程序员,因该养成 7 个面向对象的好习惯
- 浅谈PHP连接MySQL数据库的三种方式
- ubuntu配置nginx+php及优化
- PHP的错误报错级别设置原理简析
- [获取行数]php读取大文件提供性能的方法,PHP的stream_get_line函数读取大文件获取文件的行数的方...
- PHP中获取当前页面的完整URL & php $_SERVER中的SERVER_NAME 和HTTP_HOST的区别
- PHP类中self和$this的区别
- 把字符串解析到变量,数组变量中的函数 PHP parse_str() 函数
- php:用数组实现多语言(PHP 7.4.2)
- [php-src] Php扩展开发的琐碎注意点、细节
- [jQ/PHP]使用JS数组储值的两种情况(提交PHP处理)
- atitit.http get post的原理以及框架实现java php
- PHP 错误处理
- PHP面试题:你所知道的php数组相关的函数?
- PHP面试题:php读取文件内容的几种方法和函数?
- PHP面试题:写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数(array_multisort())
- PHP面试题:请以空格作为间隔,拆分字符串’Apple Orange Banana Strawberry’,组成数组$fruit,
- PHP 中操作数组的知识点