xuzuning(唠叨) 说的问题不是我问的,但较类似,现将我的代码简化如下,其中$$a[$i]或${$a[$i]}总是不正确,请各位指点!$sql="select user_company,count(*) from info where name='发动机总成' group by user_company "; $result=mysql_query($sql); $i=0; while($row=mysql_fetch_array($result)) { $a="y".$i; $b="x".$i; $l="p".$i; $sql1="select * from info where name='发动机总成'and user_company='$row[user_company]' "; $result1=mysql_query($sql1);$j=0; while($row1=mysql_fetch_array($result1)) { $$a[$j]=$row1[price1]; $$b[$j]=$row1[price2];.....$j++;} .....$i++; }
其实itian已经给你答案了。
$a不能确定个数,那也就在$a变量里,这个数组有几个有什么关系呢?
楼主要求“第二层循环,以第一个数组的每个元素为新数组名”
所以
foreach($a as $k => $v)
{
$a[$k] = array(x1,x2,x3...);
}
要改做
foreach($a as $k => $v)
{
${$v} = array(x1,x2,x3...);
}
foreach()去看一下是什么用的吧。
这个和数组的个数没有关系,反正有多少个都行。http://cn.php.net/manual/zh/control-structures.foreach.php
http://club.phpe.net/index.php?act=ST&f=2&t=8945&s=关于多维数组的问题
qiuqiu810是这样的情况:现在有一个数组,里面装另一个数组的所有索引值,
其格式为 $key[]=value;然后我会获得key的个数,即多维数组的维数
$n=count($key);假设我要得到的结果数组为$result, 我会将$key[0]作为$result的第一维索引,$key[1]作为$result的第二维索引.....$key[$n-1]作为它的第n维索引,这样数组$result将会是下面的格式:
$result[$key[0]][$key[1]].....[$key[$n-1]]现在我遇到的问题是,因为无法确定$n的个数,因此这个$result数组的格式无法确定,我想请教各位高手如何能在这种情况下写出$result数组的格式呢? 我想是的!
这一问要比你在这里的要清楚的多。
你是要从
Array
(
[0] => k1
[1] => k2
[2] => k3
)
得到
Array
(
[k1] => Array
(
[k2] => Array
(
[k3] => Array
(
) ) ))
吗?
$result=mysql_query($sql);
$i=0;
while($row=mysql_fetch_array($result))
{
$a="y".$i;
$b="x".$i;
$l="p".$i;
$sql1="select * from info where name='发动机总成'and user_company='$row[user_company]' ";
$result1=mysql_query($sql1);$j=0;
while($row1=mysql_fetch_array($result1))
{
$$a[$j]=$row1[price1];
$$b[$j]=$row1[price2];.....$j++;}
.....$i++;
}
$ar1 = array("a", "b", "c");
$ar2 = array(1, 2, 3);
foreach($ar1 as $key=>$val){
reset($ar2);
foreach($ar2 as $v){
${$val}[] = $v;
}
}
print_r($a);
print_r($b);
print_r($c);/*
//output:Array
(
[0] => 1
[1] => 2
[2] => 3
)
Array
(
[0] => 1
[1] => 2
[2] => 3
)
Array
(
[0] => 1
[1] => 2
[2] => 3
)*/
?>
${$a}[$j]=$row1[price1];
测试例
<?php
for($i=0;$i<3;$i++) {
$a = 'y'.$i;
for($j=0;$j<3;$j++)
${$a}[$j] = $i.'-'.$j;
print_r($$a);
}
?>2、你可能产生$x0、$x1、$x2....$xn一系列数组,而n并不确定。此时将造成后续操作的困难。所以应将数据保存到二维数组中
测试例
<?php
for($i=0;$i<3;$i++) {
for($j=0;$j<3;$j++)
$a[$i][$j] = $i.'-'.$j;
}
print_r($a);
?>3、对于你的示例应该用更简单的算法
$sql="select * from info where name='发动机总成'";
$result=mysql_query($sql);
while($row=mysql_fetch_array($result)){
$a['x'][$row[user_company]][]=$row[price1];
$a['y'][$row[user_company]][]=$row[price2];
}
ok!结果示例如下:
<?php
for($i=0;$i<3;$i++) {
$a[] = 'y'.$i;
for($j=0;$j<3;$j++)
${$a[$i]}[$j] = $i.'-'.$j;
print_r(${$a[$i]});
}
?>