如何在PHP中将现有数组转换为二维数组?

时间:2013-01-03 03:58:13

标签: php arrays

$i=0;
$array=array("one","two");
foreach($array as &$point)
{
   $point[$i]=array($point[$i], $i);
   $i++;
}

var_dump($array);

的产率:

  

array(2){[0] => string(3)“Ane”[1] => & string(3)“tAo”}

我期待的更像是:

  

[0] => [0] => “一”[1] = 1
  [1] => [0] => “两个”[1] = 2

我在做foreach错误的内部块,还是我应该使用另一种方法从单个数组转换为2D数组?

3 个答案:

答案 0 :(得分:1)

你的意思是这样的:

$i=1;
$array=array("one","two");
foreach($array as $j => $point)
{
   $array[$j]=array($point, $i);
   $i++;
}

var_dump($array);

输出:

array(2) {
  [0]=>
  array(2) {
    [0]=>
    string(3) "one"
    [1]=>
    int(1)
  }
  [1]=>
  array(2) {
    [0]=>
    string(3) "two"
    [1]=>
    int(2)
  }
}

答案 1 :(得分:1)

$array = array("one","two");
foreach($array as $i => &$point)
{
   $point = array($point, $i + 1);
}

var_dump($array);

您的代码中存在多个错误:

  1. 您应该分配到$point
  2. 您应该访问$point,而不是$point[$i]
  3. 如果您打开了错误输出(或者您查看错误日志),您的代码会看到Array to string conversion错误。

答案 2 :(得分:0)

您可以使用它在PHP中定义二维数组

$array = array(
  array(0, 1, 2),
  array(3, 4, 5),
);