PHP一维数组快速去重去零
1、一维数组去重
/** * 一维数组去重,返回格式为索引数组 * @param array $data 待去重的数组 * @return array */ public static function arrayUnique(array $data): array { return array_keys(array_flip($data)); }
2、一维数组去零:
/** * 过滤数组值为0的数据,需为不重复的数组 * @param array $data 待过滤数组 * @param bool $resetIndex 是否保持原有索引 * @return array */ public static function arrayFilterZero(array $data, bool $resetIndex = true) { if (empty($data)) { return $data; } $zeroKey = array_search(0, $data); if ($zeroKey !== false) { unset($data[$zeroKey]); if ($resetIndex) { $data = array_merge($data); } } return $data; }
3、一维数组去重&&去零:
/** * 一维数组去重,返回格式为索引数组 * @param array $data 待去重的数组 * @param bool $isFilterZero 是否过滤数组值为0的数据 * @return array */ public static function arrayUnique(array $data, bool $isFilterZero = false): array { $data = array_keys(array_flip($data)); if ($isFilterZero) { return self::arrayFilterZero($data, false); } return $data; } /** * 过滤数组值为0的数据,需为不重复的数组 * @param array $data 待过滤数组 * @param bool $resetIndex 是否保持原有索引 * @return array */ public static function arrayFilterZero(array $data, bool $resetIndex = true) { if (empty($data)) { return $data; } $zeroKey = array_search(0, $data); if ($zeroKey !== false) { unset($data[$zeroKey]); if ($resetIndex) { $data = array_merge($data); } } return $data; }
4、相关函数:
array_flip():交换数组中的键和值。
array_keys():返回数组中部分的或所有的键名。
array_search():在数组中搜索给定的值,如果成功则返回首个相应的键名。
array_merge():合并一个或多个数组。

浙公网安备 33010602011771号