求数组转换字符串的算法 将下面这个$a的数组,转换成注释中的字符串,求高手帮忙给解决一下。$a[0]=array(1,2,3);$a[1]=array(4,5);$a[2]=array(6);/*146156246256346356*/ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 笨办法$a[0]=array(1,2,3); $a[1]=array(4,5); $a[2]=array(6); $bs = array('');foreach (array_reverse($a) as $row) { $arr = array(); foreach ($row as $col) { foreach ($bs as $b) { $arr[] = $col.$b; } } $bs = $arr;}print_r($bs); 执行出来的结果是:Array ( [0] => 46 [1] => 56 ) 楼上的大哥,没有对啊。 肯定是$a[0]被你漏掉了,没问题的啊Array( [0] => 146 [1] => 156 [2] => 246 [3] => 256 [4] => 346 [5] => 356) 刚才是我的$a[0]给注释掉了,我测试了一下,结果对了,现在又发现一个问题,如果有$a[3]=array(3,1);或者$a[n],结果就又不对了。 这是一个求解笛卡尔积的问题。$a[0] = array(1, 2, 3, 4);$a[1] = array(5, 6, 7);$a[2] = array(8, 9);$index = array_fill(0, count($a), 0);while ($index[0] < count($a[0])) { $temp = ''; for ($i = 0; $i < count($index); ++$i) { $temp .= $a[$i][$index[$i]]; } echo $temp, '<br/>'; ++$index[count($index) - 1]; for ($i = count($index) - 1; $i > 0; --$i) { if ($index[$i] >= count($a[$i])) { $index[$i] = 0; ++$index[$i - 1]; } }}输出:158159168169178179258259268269278279358359368369378379458459468469478479 如果有$a[3]=array(3,1);你希望的结果是什么? 前台如何输出保存到数据库的php代码 Warning: Parameter 1 to Notice::onPrint() expected php模板怎么实现加入收藏? js 分页打印 总是搞不懂foreach怎么这样遍历这样的数组 session 老是莫名奇妙的丢失,请有经验的朋友帮帮忙 请教各位兄弟,header()函数的用法!! 请问一下:那些支持php的空间是怎样解决上传文件后的安全性问题的? 大虾们来看看这个这么简单的问题吧! 如何用php定时把一个mysql数据库的表复制到另一个数据库 php定时自动发邮件提醒问题 求一则正则表达式
$a[0]=array(1,2,3);
$a[1]=array(4,5);
$a[2]=array(6);
$bs = array('');
foreach (array_reverse($a) as $row) {
$arr = array();
foreach ($row as $col) {
foreach ($bs as $b) {
$arr[] = $col.$b;
}
}
$bs = $arr;
}
print_r($bs);
Array ( [0] => 46 [1] => 56 )
楼上的大哥,没有对啊。
Array
(
[0] => 146
[1] => 156
[2] => 246
[3] => 256
[4] => 346
[5] => 356
)
$a[0] = array(1, 2, 3, 4);
$a[1] = array(5, 6, 7);
$a[2] = array(8, 9);$index = array_fill(0, count($a), 0);while ($index[0] < count($a[0])) {
$temp = '';
for ($i = 0; $i < count($index); ++$i) {
$temp .= $a[$i][$index[$i]];
}
echo $temp, '<br/>';
++$index[count($index) - 1];
for ($i = count($index) - 1; $i > 0; --$i) {
if ($index[$i] >= count($a[$i])) {
$index[$i] = 0;
++$index[$i - 1];
}
}
}
输出:
158
159
168
169
178
179
258
259
268
269
278
279
358
359
368
369
378
379
458
459
468
469
478
479
如果有$a[3]=array(3,1);你希望的结果是什么?