使用不同索引的数组

  • 2020-10-13 13:12:03
  • 阅读次数:
  • 作者:盈岚科技小编
  • 来源:http://www.lyjtt.cn

网站建设中的$products数组中,允许PHP为每个元素指定一个默认的索引。这就意味着,所添加的第一个元素为元素0,第二个为元素1等。PHP还支持相关数组。在相关数组中,可以将每个变量值与任何关键字或索引关联起来。

【示例1】创建一个以产品名称作为关键字、以价格作为值的相关数组。代码如下:

$prices = array("Tires" =>100, "Oil"=>10, "Spark Plugs"=>4);

关键字和值之间的符号只是一个在大于号之前的等于符号。同样,可以使用变量名称和关键字来访问数组的内容,因此就可以通过如下方式访问保存在prices数组中的信息。

$prices["Tires"];$prices["Oil"];$prices["Spark Plugs"];

【示例2】创建一个与$prices数组相同的数组。这种方法并不是创建一个具有3个元素的数组,而是创建一个只有一个元素的数组,然后再加上另外两个元素。代码如下:$prices = array("Tires" =>100);$prices["Oil"] = 10;$prices["Spark Plugs"] = 4;与下面这段代码有些不同,但其功能与以上代码是等价的。在这种方法中,并没有明确地创建一个数组。数组是在向这个数组加入第一个元素时创建的。$prices["Tires"] = 100;$prices["Oil"] = 10;$prices["Spark Plugs"] = 4;因为相关数组的索引不是数字,因此无法在for循环语句中使用一个简单的计数器对数组进行操作。但是可以使用foreach循环或list()和each()结构。当使用foreach循环语句对相关数组进行操作时,foreach循环具有不同的结构。可以在前面的例子中使用这个循环语句,也可以按如下方式使用关键字。foreach( $prices as $key => $value)     echo $key.'=>'.$value.'<br />';【示例3】也可以使用each()打印$prices数组的内容,代码如下:while($element = each($prices)){     echo $element['key'];     echo '=>';     echo $element['value'];     echo '<br />';     }each()函数能够返回数组的当前元素,并将下一个元素作为当前元素。因为在while循环中调用each()函数,它将按顺序返回数组中每个元素,并且当它到达数组末尾时,循环操作将终止。

在上面这段代码中,变量$element是一个数组。当调用each()时,它将返回一个带有4个数值和4个指向数组位置的索引的数组。位置key和0包含了当前元素的关键字,而位置value和1包含了当前元素的值。虽然这与选哪一种方法没什么不同,但选择了使用命名位置,而不是数字索引位置。

此外,还有一种更为高级和常见的方式来完成相同的操作。函数list()可以用来将一个数组分解为一系列的值。可以按照如下方式将函数each()返回的两个值分开:list($product, $price) = each($prices);以上代码使用each()从$prices数组中取出当前元素,并且将它作为数组返回,然后再指向下一个元素。它还使用list()将从each()返回的数组中所包含0、1两个元素变为两个名为$product和$price的新变量。可以循环遍历整个$prices数组,使用如下所示的简短脚本显示它的内容:while(list($product, $price) = each($prices))     echo "$product => $price<br />";这段代码的输出结果与前面脚本的输出结果相同,但它更容易阅读,因为list()允许为新变量命名。需要注意的一点是,当使用each()函数时,数组将记录当前元素。如果希望在相同的脚本中两次使用该数组,就必须使用函数reset()将当前元素重新设置到数组开始处。要再次遍历prices数组,可以使用如下所示的代码:

reset($prices) ;while(list($product, $price) = each($prices))     echo "$product => $price<br />";

以上代码可以将当前元素重新设置到数组开始处,再次遍历数组。

当前文章标题:使用不同索引的数组

当前URL:http://www.lyjtt.cn/news/wzzz/3287.html

上一篇:定义数字索引数组

下一篇:常用网页设计软件

网站建设、抖音推广、头条推广、微信朋友圈推广、快手推广专线:15368242187(微信同号)