FilterTrait.php '新键名'] * * @return array */ public function filterData( $data, $key = [ ], $newKey = [ ] ) { $info = empty( $key ) ? $data : [ ]; //过滤要显示的数据 if ( !empty( $key ) ) { foreach ( $data as $k = $v ) { $info[
'新键名']
*
* @return array
*/
public function filterData( $data, $key = [ ], $newKey = [ ] )
{
$info = empty( $key ) ? $data : [ ];
//过滤要显示的数据
if ( !empty( $key ) ) {
foreach ( $data as $k => $v ) {
$info[ $k ] = $this->filterArrayKey ( $v, $key );
}
}
//处理键名需要转换的
if ( !empty( $newKey ) ) {
foreach ( $info as $k => $v ) {
$info[ $k ] = $this->replaceArrayKey ( $v, $newKey );
}
}
return $info;
}
/**
* 过滤一维数组键名
*
* @param $data
* @param array $filter
*
* @return mixed
*/
public function filterArrayKey( $data, $filter )
{
if ( !empty( $filter ) ) {
foreach ( $data as $key => $val ) {
if ( !in_array ( $key, $filter ) ) {
unset( $data[ $key ] );
}
}
}
return $data;
}
/**
* 替换键名 -> 可用于过滤和转换请求参数,用于统一处理
*
* @param array $data 要替换的数据
* @param array $newKey 键值对 $newKey = [key => newKey]
*
* @return mixed
*/
public function replaceArrayKey( $data, $newKey )
{
if ( !empty( $data ) ) {
foreach ( $data as $nk => $nv ) {
if ( array_key_exists ( $nk, $newKey ) ) {
$data[ $newKey[ $nk ] ] = $nv;
unset( $data[ $nk ] );
}
}
}
return $data;
}
/**
* 替换键名 [可多个将遇到的多个键名转为相同的键名] -> 可用于过滤和转换请求参数,用于统一处理
*
* @param array $data 要替换的数据
* @param array $keyVals 键值对
* $newKey = [ newKey => [key1,key2], ...] or
* $newKey = [ newKey => 'key1,key2', ...]
*
* @desc 键值对不允许为空
* @return mixed
*/
public function changeArrayKey( $data, $keyVals )
{
if ( !empty( $data ) ) {
foreach ( $data as $nk => $nv ) {
foreach ( $keyVals as $k => $v ) {
$v = is_string ( $v ) ? explode ( ',', $v ) : $v;
if ( in_array ( $nk, $v ) ) {
$data[ $k ] = $data[ $nk ];
unset( $data[ $nk ] );
break;
}
}
}
}
return $data;
}
}
