如何在php中创建定长多维数组?

如何在php中创建定长多维数组?,php,Php,inttwodim[5][8]; int-threedim[3][5][8] 如何在PHP中创建固定长度的多维数组,如在C++中创建的?< p>创建固定数组,应该使用扩展名: SplFixedArray类提供了数组的主要功能。SplFixedArray与普通PHP数组之间的主要区别在于,SplFixedArray的长度固定,并且只允许范围内的整数作为索引。优点是它允许更快的阵列实现 它不像PHP,但您可以使用此函数(基于Grzegorz的提示)生成任意维的固定大小数组 function crea

inttwodim[5][8];
int-threedim[3][5][8]


如何在PHP中创建固定长度的多维数组,如在C++中创建的?

< p>创建固定数组,应该使用扩展名:

SplFixedArray类提供了数组的主要功能。SplFixedArray与普通PHP数组之间的主要区别在于,SplFixedArray的长度固定,并且只允许范围内的整数作为索引。优点是它允许更快的阵列实现


它不像PHP,但您可以使用此函数(基于Grzegorz的提示)生成任意维的固定大小数组

function createFixedArray() {
  $args = func_get_arg(0);
  $array = new SplFixedArray($args[0]);

  if (isset($args[1])) {
    $newArgs = array_splice($args, 1);
    for ($i=0; $i<$args[0]; $i++) {
      $array[$i] = createFixedArray($newArgs);
    }
  }
  return $array;
}
产生

object(SplFixedArray)#1 (2) {
  [0]=>
  object(SplFixedArray)#2 (2) {
    [0]=>
    object(SplFixedArray)#3 (2) {
      [0]=>
      int(0)
      [1]=>
      int(1)
    }
    [1]=>
    object(SplFixedArray)#4 (2) {
      [0]=>
      int(1)
      [1]=>
      int(0)
    }
  }
  [1]=>
  object(SplFixedArray)#5 (2) {
    [0]=>
    object(SplFixedArray)#6 (2) {
      [0]=>
      int(1)
      [1]=>
      int(0)
    }
    [1]=>
    object(SplFixedArray)#7 (2) {
      [0]=>
      int(0)
      [1]=>
      int(1)
    }
  }
}

很抱歉,我们不清楚您实际要求的是什么。PHP数组是动态的,您不需要声明它们,并且没有固定的大小。请注意,PHP作为非声明性编程语言不使用严格类型。它采用了一种更加动态的方法,数组和对象不仅可以在值上修改,还可以在结构上“动态”修改。亲爱的,我只是想在我们的C++中创建固定长度的多维数组,亲爱的,我们不能用SPLFIDENED数组创建多维数组。什么阻止你嵌套SPLIGEDED数组来创建一个多维数组?因为每次我们用新的创建数组时,它都会删除数组占用的旧内存,然后在新内存位置创建新大小的数组,并复制和粘贴数组数据。我的代码可能会生成巨大的数组。你认为在运行时生成巨大的数组是个好主意吗。。。。正如我所说的,我想创建固定的多维介质。数组,但不是在运行时…使用您自己的数据运行一些测试,看看它在处理和内存方面是如何工作的。您的数据和设置在问题中不清楚,有点超出其范围。
object(SplFixedArray)#1 (2) {
  [0]=>
  object(SplFixedArray)#2 (2) {
    [0]=>
    object(SplFixedArray)#3 (2) {
      [0]=>
      int(0)
      [1]=>
      int(1)
    }
    [1]=>
    object(SplFixedArray)#4 (2) {
      [0]=>
      int(1)
      [1]=>
      int(0)
    }
  }
  [1]=>
  object(SplFixedArray)#5 (2) {
    [0]=>
    object(SplFixedArray)#6 (2) {
      [0]=>
      int(1)
      [1]=>
      int(0)
    }
    [1]=>
    object(SplFixedArray)#7 (2) {
      [0]=>
      int(0)
      [1]=>
      int(1)
    }
  }
}