我可以在PHP中定义array
,如下所示:
$array = array();
在C ++中,我们有两种数组。
第一种是固定大小的数组,例如:
int arr[4]; // 4 ints, hardcoded size
第二种是动态大小的数组
std::vector<int> v; // can grow and shrink at runtime
PHP使用什么类型的数组? PHP中是两种数组吗?如果是的话,你能举例说明吗?
答案 0 :(得分:15)
PHP没有C或C ++那么严格。在PHP中,您不需要指定要放入数组中的数据类型,也不需要指定数组大小。
如果需要在C ++中声明一个整数数组,可以这样做:
int array[6];
此数组现在只能包含整数。在PHP中,数组可以包含几乎所有内容:
$arr = array();
$arr[] = 1;
$arr[] = 2;
$arr[] = 3;
$arr[] = 4;
var_dump($arr); //Prints [1,2,3,4]
$arr[] = 'hello world'; //Adding a string. Completely valid code
$arr[] = 3.14; //Adding a float. This one is valid too
$arr[] = array(
'id' => 128,
'firstName' => 'John'
'lastName' => 'Doe'
); //Adding an associative array, also valid code
var_dump($arr); //prints [1,2,3,4,'hello world',3.14, [ id => 128, firstName => 'John', lastName => 'Doe']]
如果您来自C ++背景,最好将PHP数组视为可以存储所有内容的通用矢量。
答案 1 :(得分:12)
来自php.net
PHP中的数组实际上是一个有序的映射。地图是一种类型 将值与键相关联。此类型针对多种进行了优化 不同用途;它可以被视为数组,列表(向量),哈希 table(地图的实现),字典,集合,堆栈, 队列,可能更多。由于数组值可以是其他数组,树 和多维数组也是可能的。
答案 2 :(得分:2)
PHP使用三种数组:
数字数组 - 具有数字索引的数组。值以线性方式存储和访问。
关联数组 - 以字符串作为索引的数组。这将元素值与键值相关联,而不是以严格的线性索引顺序存储。
多维数组 - 使用多个索引访问包含一个或多个数组和值的数组。
Numeric Array Ex:
$numbers = array( 1, 2, 3, 4, 5);
关联阵列Ex:
$salaries = array("mohammad" => 2000, "qadir" => 1000, "zara" => 500);
多维数组Ex:
$marks = array(
"mohammad" => array (
"physics" => 35,
"maths" => 30,
"chemistry" => 39
),
"qadir" => array (
"physics" => 30,
"maths" => 32,
"chemistry" => 29
),
"zara" => array (
"physics" => 31,
"maths" => 22,
"chemistry" => 39
)
);
答案 3 :(得分:2)
用C ++术语表示的php数组大致是:
std::map< std::experimental::any, std::experimental::any >
其中std::experimental::any
是一种基本上可以容纳任何东西的类型。 php等价物也可以使用等效的<
进行排序。
唔不完全 - 更接近事实是,php数组是一个抽象接口,它暴露了上述map
在C ++中提供的大部分操作(C ++ map
是具体的实现)。
存储在Variant中的具有连续数字键的数组被视为std::vector<Variant>
,并且在界面下php系统甚至可以使用vector<Variant>
或类似的东西来存储它,甚至有两个不同的内部细节,其中一个用于连续的整数索引数据块,另一个用于稀疏条目。 (我不知道php是如何实现的,但我就是这样做的)
答案 4 :(得分:1)
PHP中基本上有三种使用模式。
索引数组:具有连续数字索引的数组,例如0,1,2等。示例:
$myarray = array();
$myarray[0] = "test data 1";
$myarray[1] = "test data 2";
$myarray[3] = "test data 3";
关联数组:这是最常用的PHP数组类型,其元素在键/值对中定义。例如:
$myarray = array();
$myarray["key1"] = "value 1";
$myarray["key2"] = "value 2";
$myarray["key3"] = "value 3";
多维数组:其元素可能包含一个或多个数组的数组。尺寸水平没有限制。例如:
$myarray = array();
$myarray[0] = array("data01","data02","data03");
$myarray[1] = array("data11","data12","data13");
有关详细信息,请参阅 PHP 5 Arrays 。
答案 5 :(得分:0)
PHP使用数字,关联数组和多维数组。阵列本质上是动态的,不应提及任何大小。浏览php.net/manual/en/language.types.array.php以查找详细信息。