1、php中array当纯粹的数组用,$key就是数组元素的下标,
array(‘a1’,‘a2’); 等价于 array(0 =>‘a1’, 1 => ‘a2’);
// 键(key)可是是一个整数 integer 或字符串 string
// 值(value)可以是任意类型的值
如果不特别指定下标,每增加一数组项,下标自增1
2、array当作映射表来用,实际上这也是array最重要的用法。这时作为key可以数字也可以是字符串
下面定义了电话区号和城市的映射表,如下
$map = array(
‘010’ => ‘北京’,
‘0755’ => ‘深圳’,
…
);
如果要查0755对应的是哪个城市就可以用map[‘0755’]查出
下面来介绍extract 处理 P O S T 和 _POST和 POST和_GET数组的作用
form 表单通过 post 的方式能够向后台传输大量的数据,这些数据以数组的形式被封装在 $_POST 中,如:
$_POST = array(
'id' => 1,
'code' => 'shorh',
'cat_id' => 55,
'name' => '防晒霜',
'brand_id' => 23,
);
或者是 URL 通过 get 的方式传参,数据以数组的形式被封装在 $_GET 中,比如 URL 为http://localhost/demo/extract/demo.php?a=1&b=2:
$_GET = array (
'a' => 1,
'b' => 2
);
正常的我们解析这些数据,需要:
$id = $_POST['id'];
$code = $_POST['code'];
$cat_id = $_POST['cat_id'];
$name = $_POST['name'];
$brand_id = $_POST['id'];
这样的手工解析很麻烦,有没有什么方法能够处理这些数据呢?
extract() 方法可用于将数组展开,键名作为变量名,元素值为变量值,简单的说,就是能够直接将 $_POST 和 $_GET 中的变量解析出来,不需要我们手工赋值处理。
Solution. 解决
<?php
error_reporting(0);
print_r($_POST);
echo "<br>";
extract($_POST);
echo("\$username = ".$username."<br>");
echo("\$password = ".$password."<br>");
?><!DOCTYPE html>
<html>
<head>
<title>ExtractDemo</title>
<meta charset="utf-8">
</head>
<body>
<!-- 测试代码 -->
<form method="post">
<input type="text" name="username" value="<?php echo($username)?>">
<input type="password" name="password" value="<?php echo($password)?>">
<input type="submit" >
<br>输入文字
</form>