把 字符串 $str = '12,34,5';
拆分成数组 $arr = [[1,3,5],[1,4,5],[2,3,5],[2,4,5]];
求把$str转成$arr的php逻辑算法;
把 字符串 $str = '12,34,5';
拆分成数组 $arr = [[1,3,5],[1,4,5],[2,3,5],[2,4,5]];
求把$str转成$arr的php逻辑算法;
两个数组很好组合,2个嵌套的for循环即可,不确定个数的多数组就没法这么处理了,可以参考一些排序算法的思路,多数组就通过递归其转换为2个数组,如:[[1,2],[3,4],[5]],将其转换为[[13,14,23,24],[5]],最后2个嵌套的for循环解决,参考代码:
$str = '12,34,5';
$arr = [];
foreach (explode(',', $str) as $v) {
$arr[] = str_split($v);
}
print_r(fun($arr));
function fun($arr)
{
if (count($arr) >= 2) {
$tmparr = [];
$arr1 = array_shift($arr);
$arr2 = array_shift($arr);
foreach ($arr1 as $v1) {
foreach ($arr2 as $v2) {
$tmparr[] = $v1 . $v2;
}
}
array_unshift($arr, $tmparr);
$arr = fun($arr);
}
return $arr;
}
10 回答11.1k 阅读
1 回答2.9k 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.2k 阅读
说明一下,使用 global 可能看上去不那么优雅,但是这里我就是写一个示例方法,不就过于纠结啦,可自行优化