在PHP中,implode()
函数用于将一维数组的元素连接成一个字符串。但对于多维数组,implode()
不能直接使用,需要先处理多维数组使其变为一维。
function multi_implode($glue, $array) {
$ret = '';
foreach ($array as $item) {
if (is_array($item)) {
$ret .= multi_implode($glue, $item) . $glue;
} else {
$ret .= $item . $glue;
}
}
$ret = substr($ret, 0, 0-strlen($glue));
return $ret;
}
// 使用示例
$multi_array = [
'a',
['b', 'c'],
'd' => ['e', 'f' => ['g', 'h']]
];
echo multi_implode(',', $multi_array); // 输出: a,b,c,e,g,h
function flatten_implode($glue, $array) {
$result = [];
array_walk_recursive($array, function($value) use (&$result) {
$result[] = $value;
});
return implode($glue, $result);
}
// 使用示例
$multi_array = [
'a',
['b', 'c'],
'd' => ['e', 'f' => ['g', 'h']]
];
echo flatten_implode(',', $multi_array); // 输出: a,b,c,e,g,h
以上方法可以根据实际需求选择使用,对于大多数情况,array_walk_recursive
方案更为简洁高效。
没有搜到相关的文章