fix: 完善 str2arr/arr2str 白名单匹配与空白处理

This commit is contained in:
邹景立 2026-03-04 13:52:46 +08:00
parent 87a69e2633
commit 8510c65124

View File

@ -201,8 +201,9 @@ if (!function_exists('str2arr')) {
{ {
$items = []; $items = [];
foreach (explode($separ, trim($text, $separ)) as $item) { foreach (explode($separ, trim($text, $separ)) as $item) {
if ($item !== '' && (!is_array($allow) || in_array($item, $allow))) { $item = trim($item);
$items[] = trim($item); if ($item !== '' && (!is_array($allow) || in_array($item, $allow, true))) {
$items[] = $item;
} }
} }
return $items; return $items;
@ -218,8 +219,11 @@ if (!function_exists('arr2str')) {
function arr2str(array $data, string $separ = ',', ?array $allow = null): string function arr2str(array $data, string $separ = ',', ?array $allow = null): string
{ {
foreach ($data as $key => $item) { foreach ($data as $key => $item) {
if ($item === '' || (is_array($allow) && !in_array($item, $allow))) { $item = is_string($item) ? trim($item) : $item;
if ($item === '' || (is_array($allow) && !in_array($item, $allow, true))) {
unset($data[$key]); unset($data[$key]);
} else {
$data[$key] = $item;
} }
} }
return $separ . join($separ, $data) . $separ; return $separ . join($separ, $data) . $separ;