PHP 数组辅助函数
/** * 取多维数据中某字段的值 * @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
2019-1-7
-
php后端对跳转的封装 php
2019-1-7
-
PHP队列类 php
2019-1-7
-
在线生成mysql数据字典 php
2019-1-7
-
php操作excel到数据库 php
2019-1-13
-
is_mobile()判断手机移动设备 php
2019-1-7
-
php验证码 php
2019-1-7
-
阿拉伯数字 转换 中文大写 php
2019-1-7
-
php 通用redis类 php
2019-1-8
-
PHP无限分类 php
2019-1-13