$a = array(y0,y1...);
foreach($a as $k => $v)
{
$a[$k] = array(x1,x2,x3...);
}print_r($a);

解决方案 »

  1.   

    还没有说明白,$a的数组中值的个数是不确定的不能用$a = array(y0,y1...);去赋值,$y0,$y1..的数组中值的个数也是不确定,必须用到动态变量的概念
      

  2.   

    哈哈,变量都会动态的啊,我不知道楼主的动态概念是什么?
    其实itian已经给你答案了。
    $a不能确定个数,那也就在$a变量里,这个数组有几个有什么关系呢?
      

  3.   

    更正 itian(没有靠背的椅) 的一个失误
    楼主要求“第二层循环,以第一个数组的每个元素为新数组名”
    所以
    foreach($a as $k => $v)
    {
    $a[$k] = array(x1,x2,x3...);
    }
    要改做
    foreach($a as $k => $v)
    {
    ${$v} = array(x1,x2,x3...);
    }
      

  4.   

    数组的值本来是没有的,是要通过第一层循环得到第二层中用到的数组名,第二层循环完成数组的赋值工作,数组赋值的形式是如何实现的,不能用array(x1,x2,x3...);的形式,因为手工不知道有多少个数组,也不知道每个数组的具体值!
      

  5.   

    看来楼主没有理解楼上代码的用意。
    foreach()去看一下是什么用的吧。
    这个和数组的个数没有关系,反正有多少个都行。http://cn.php.net/manual/zh/control-structures.foreach.php
      

  6.   

    foreach()不从数组中取值的吗,我现在是要给数组赋值!
      

  7.   

    我有点奇怪,为什么你在别处不是这样问的呢?这个是你问的吧?
    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
                            (
                            )                )        ))
    吗?
      

  8.   

    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++;
    }
      

  9.   

    <?php
    $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
    )*/
    ?>
      

  10.   

    1、$$a[$j]=$row1[price1];写法错误,应写做
    ${$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];
    }
      

  11.   

    现在问题是不能以$a,$b,$c的形式调用,因为不知道每次调用的数组长度,在程序中只能以$ar1 [$i]的形式,可是用不好总出问题
      

  12.   


    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]});
    }
    ?>