PHP中数组键值对与extract()

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>
1. extract()有什么用?
它的主要作用是将数组展开,方便对数组的操作,比方说,可以很方便的提取$_POST或者$_GET的元素,对表单提交上来的内容不用一一赋值。
2. extract()怎么用?
键名作为变量名,元素值为变量值 对于 post上来的数据通过extract($_POST); 解析,我们就可以直接通过变量的方式使用了。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值