我正在学习php。尽管google上有这么多例子,我仍然对实现二维和三维数组感到困惑。用简单来说,有人可以用一个例子来解释吗?
答案 0 :(得分:7)
对我来说最简单的例子是将SQL表视为多维数组。
表格可能如下所示:
ID | Name | Email
--------------------------
1 | John | john@email.com
2 | Jane | jane@email.com
阵列可能如下所示:
Array
(
[0] => Array
(
[0] => 1
[1] => John
[2] => john@email.com
)
[1] => Array
(
[0] => 2
[1] => Jane
[2] => jane@email.com
)
)
该表变为数组数组。其中每一行由第一个索引访问,每一列由第二个索引访问。
所以,如果我想得到“简”,我会使用$ array [1] [1]
同一个表的关联数组可能如下所示:
Array
(
[0] => Array
(
[ID] => 1
[Name] => John
[Email] => john@email.com
)
[1] => Array
(
[ID] => 2
[Name] => Jane
[Email] => jane@email.com
)
)
您可以像$ array [1] [“Name”]
一样访问“Jane”答案 1 :(得分:3)
这些是嵌套在其他数组中的数组。根据它们嵌套的深度决定它们的尺寸。
以下是1D和2D阵列的示例。
$arr =
array(
'item1' => 543,
654 => true,
'xas' => 0.54
);
// Accessing $arr[654] (returns true)
$arr2 = array(
array
(
'a' => 54,
'b' => 'Hello'
),
array
(
'itemx' => true,
954 => 'hello'
)
);
// Accessing $arr[0]['b'] (equal to 'Hello')
对于3D数组,只需将另一个嵌套数组添加到2D数组示例中的第二级数组项之一。
答案 2 :(得分:1)
数组中可以包含任何内容,从整数到字符串,到完整的对象,到另一个数组。
任何数组本身都称为一维数组。如果你认为它是一排盒子,那么它就是一排。如果一个数组中有另一个数组,那么它就是一个二维数组:它的一个框将是一个列,添加另一个维。
$users = array() ;
$jim = array('Jim', 'Smith') ;
$users[] = $jim ;
//or in one step
$users = array(array('Jim', 'Smith')) ;
//then to access the first user:
$jim = $users[0];
//and his firstname:
$jimsname = $users[0][0] ;
//or
$jimsname = $jim[0] ;
您可以通过索引访问数组及其嵌套数组的元素,但您需要记住哪个数字索引对应于哪条信息。在那里你可以使用 associative 数组,其中数字索引被唯一的描述性字符串替换:
$users = array() ;
$jim = array(
'firstname' => 'Jim',
'lastname' => 'Smith'
) ;
$users['jim'] = $jim ;
//then to access jim:
$jim = $users['jim'];
//and his firstname:
$jimsname = $users['jim']['firstname'] ;
//or
$jimsname = $jim['firstname'] ;
这就是它。您可以在here
中看到更多the manual答案 3 :(得分:1)
还有一种非常简单的方法可以开始使用多维数组。
只需拿一张纸和一支铅笔,然后开始在纸上写下你的多维数组。它会在一开始就帮助你很多。
看起来应该是这样的。
ARRAY0 {
key0.0 => "value0.0",
key0.1 => "value0.1",
key0.2 => ARRAY1 {
key1.0 => "value1.0",
key1.1 => ARRAY2 {
key2.0 => "value2.0",
key2.1 => "value2.1",
},
key1.2 => "value1.2",
},
key0.3 => "value0.3",
};
这只是我可视化阵列的方法,如果你愿意,可以用你自己的语法提出。
答案 4 :(得分:0)
试试这个。
$anArray['abc'][1]['qwe']='this is a value';
$anArray['abc']['avs']='another value';
echo $anArray['abc'][1]['qwe'];
echo $anArray['abc']['avs'];
/ *
数组在PHP中有点不同。您可以将数组元素视为单个变量($ anArray ['abc'] [1] ['qwe']或$ anArray ['abc'] ['avs'])。您可以像单个变量一样创建它们。这是传统阵列的补充。也支持传统方式。
但是如果你写下来会发生什么:$anArray['abc']='something else';
$anArray['abc']
只是一个字符串变量。所以你不能(或者可能没有,因为我没有测试它,实际上一切皆有可能)再访问$anArray['abc'][1]['qwe']
。
因此,尝试将元素视为变量,首先;)
* /