PHP数组–索引,关联和多维

时间:2020-02-23 14:42:00  来源:igfitidea点击:

数组是一组相似类型的变量。
PHP提供了array()函数来创建一个PHP数组。

PHP数组

PHP中存在三种类型的数组。

  • 索引数组–具有数字索引的数组。

  • 关联数组–具有键值对的数组,类似于Java中的Map。

  • 多维数组–数组数组。

PHP索引数组

有两种创建索引数组的方法。
–第一种使用没有任何索引的array()函数的方法,从0开始自动分配索引。
–第二种手动分配索引并创建数组的方法。

PHPcount()函数用于获取数组的长度。
我们可以使用for循环遍历索引数组的所有值。

下面的代码显示了两种创建索引数组并在PHP中循环遍历的方法。

<?php
$colors = array("Red","Green","Blue");

$colors1[0] = "Red";
$colors1[1] = "Green";

$length = count($colors);
echo "colors array length=" . $length; //prints "colors array length=3"
echo "<br>";
echo "colors1 array length=" . count($colors1); //prints "colors1 array length=2"

//looping an indexed array
for($i=0; $i<$length; $i++){
	echo $colors[$i];
	echo "<br>";
}
?>

PHP关联数组

关联数组使用命名键作为值,我们可以像建立索引数组一样创建它们。
" foreach"用于遍历关联数组。

<?php

$colors = array("0"=>"Red","1"=>"Green","2"=>"Blue");

echo "0th element of array is " . $colors["0"];
echo "<br>";
//looping
foreach ($colors as $key=>$value){
	echo "Key=".$key." value=".$value;
	echo "<br>";
}
?>

上面的PHP脚本的输出是:

0th element of array is Red
Key=0 value=Red
Key=1 value=Green
Key=2 value=Blue

PHP中的多维数组

多维数组是数组的数组。
我们可以使用数组函数创建二维,三维和n维数组。

多维数组中的每个数组都可以是索引数组或者关联数组。
我们可以使用for循环遍历索引数组,使用foreach循环遍历关联数组。

在下面的示例中,我显示了二维索引数组以及多维数组中索引数组和关联数组的混合。

我们可以使用print_r()或者var_dump()函数来打印人类可读的数组形式。

<?php

//Indexed two-dimensional array
$cars = array(
				array("Honda Accord", "V6", 30000),
				array("Toyota Camry", "LE", 24000),
				array("Nissan Altima", "V1"),
			);

//printing array information			
print_r($cars);
echo "<br>";
var_dump($cars);
echo "<br>";
//looping through two-dimensional indexed array

for($i=0;$i<count($cars);$i++){
	for($j=0;$j<count($cars[$i]);$j++){
		echo $cars[$i][$j] . " ";
	}
	echo "<br>";
}
echo "<br>";

//Indexed Associative two-dimensional array
$cars = array(
				array("Name" => "Honda Accord", "Model" => "V6", "Cost" => 30000),
				array("Name" => "Toyota Camry", "Model" => "LE", "Cost" => 24000),
				array("Name" => "Nissan Altima", "Model" => "V1"),
			);

//printing array information			
print_r($cars);
echo "<br>";
var_dump($cars);
echo "<br>";

//looping through two-dimensional indexed associative array

for($i=0;$i<count($cars);$i++){
	$c=0;
	foreach($cars[$i] as $key=>$value){
		$c++;
		echo $key."=".$value;
		if($c<count($cars[$i])) echo ",";
	}
	echo "<br>";
}
?>

上面的PHP脚本的输出是:

Array ( [0] => Array ( [0] => Honda Accord [1] => V6 [2] => 30000 ) [1] => Array ( [0] => Toyota Camry [1] => LE [2] => 24000 ) [2] => Array ( [0] => Nissan Altima [1] => V1 ) ) 
array(3) { [0]=> array(3) { [0]=> string(12) "Honda Accord" [1]=> string(2) "V6" [2]=> int(30000) } [1]=> array(3) { [0]=> string(12) "Toyota Camry" [1]=> string(2) "LE" [2]=> int(24000) } [2]=> array(2) { [0]=> string(13) "Nissan Altima" [1]=> string(2) "V1" } } 
Honda Accord V6 30000 
Toyota Camry LE 24000 
Nissan Altima V1 

Array ( [0] => Array ( [Name] => Honda Accord [Model] => V6 [Cost] => 30000 ) [1] => Array ( [Name] => Toyota Camry [Model] => LE [Cost] => 24000 ) [2] => Array ( [Name] => Nissan Altima [Model] => V1 ) ) 
array(3) { [0]=> array(3) { ["Name"]=> string(12) "Honda Accord" ["Model"]=> string(2) "V6" ["Cost"]=> int(30000) } [1]=> array(3) { ["Name"]=> string(12) "Toyota Camry" ["Model"]=> string(2) "LE" ["Cost"]=> int(24000) } [2]=> array(2) { ["Name"]=> string(13) "Nissan Altima" ["Model"]=> string(2) "V1" } } 
Name=Honda Accord,Model=V6,Cost=30000
Name=Toyota Camry,Model=LE,Cost=24000
Name=Nissan Altima,Model=V1