如何声明一个二维数组?

102

如何最简单地创建一个二维数组?我希望能够做类似于这样的事情:

declare int d[0..m, 0..n]
16个回答

1

我喜欢这种方式:

$cars = array
  (
  array("Volvo",22),
  array("BMW",15),
  array("Saab",5),
  array("Land Rover",17)
  );

0
//  You can define your 2D array like this ...
$numbers = [[1, 2], [3, 4]];

// ... or for Questions and Answers like this ...
$QaA = [
    ['Question_1', 'Answer_1'],
    ['Question_2', 'Answer_2']    ];

// ... and return some very value like this ...
echo $QaA[1][1];      //  "Answer_2"

//  And you can browse through all this 2D array:
foreach ( $QaA as $nr1 => $content )  {
    echo "\n";
    foreach ($content as $nr2 => $answer) {
        echo "    $nr1, $nr2:  $answer";     }  }

/*  Result:
    0, 0:  Question_1    0, 1:  Answer_1
    1, 0:  Question_2    1, 1:  Answer_2     */

//   Thus you can see all the array:
print_r($QaA);   /*   Result: 
Array  (
    [0] => Array  (
          [0] => Question_1
          [1] => Answer_1  )     
    [1] => Array ( 
          [0] => Question_2
          [1] => Answer_2    )   )   */

0
你可以尝试这个方法,但是第二维的值将等于索引: $array = array_fill_keys(range(0,5), range(0,5));
对于空数组来说,稍微复杂一些: $array = array_fill_keys(range(0, 5), array_fill_keys(range(0, 5), null));

0
你需要在另一个数组中声明一个数组。 $arr = array(array(内容), array(内容));
例如: $arr = array(array(1,2,3), array(4,5,6));
要从数组中获取第一项,你需要使用 $arr[0][0],这相当于从数组的第一个子数组中获取第一项。$arr[1][0] 将返回数组中第二个子数组的第一项。

-1
如果您想使用一行代码快速创建简单值的多维数组,我建议使用这个数组库来实现:
$array = Arr::setNestedElement([], '1.2.3', 'value');

这将产生

[
  1 => [
    2 => [
      3 => 'value'
    ]
  ]
]

-2

很晚参加派对,但对于现在寻找这方面信息的任何人 - 如果你想要像在C#中声明一个二维数组一样简单地声明它,可以按照以下方式在作用域中声明:

<?php
  $My2dArray = array(array());
  //This allows you to use it as a bidimensional array. See this loop for example:
  for($i = 0; $i < 5; $i++) {
    $My2dArray[$i]["whatever-you-want"] = "MyValue";
  }
  
  return $My2dArray;
?>

1
array(array()); 不需要,array(); 就足够了。static whatever-you-want 几乎没有意义,使用简单的一维数组代替。return 在这个上下文中几乎没有意义。 - Your Common Sense

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接