PHP函数篇(三)---数组函数篇(2)

663 阅读3分钟

本文已参与【新人创作礼】活动 ,一起开启掘金创作之路

1、extract函数

extract

定义和用法

array_values() 函数从数组中将变量导入到当前的符号表

注释: 该函数使用数组键名作为变量名,使用数组键值作为变量值。针对数组中的每个元素,将在当前符号表中创建对应的一个变量。该函数返回成功设置的变量数目

语法 extract(array,extract_rules,prefix)

参数描述
array必需。规定要使用的数组
extract_rules可选。extract() 函数将检查每个键名是否为合法的变量名,同时也检查和符号表中已存在的变量名是否冲突。对不合法和冲突的键名的处理将根据此参数决定。可能的值:- EXTR_OVERWRITE - 默认。如果有冲突,则覆盖已有的变量。- EXTR_SKIP - 如果有冲突,不覆盖已有的变量。- EXTR_PREFIX_SAME - 如果有冲突,在变量名前加上前缀 prefix。- EXTR_PREFIX_ALL - 给所有变量名加上前缀 prefix。- EXTR_PREFIX_INVALID - 仅在不合法或数字变量名前加上前缀 prefix。- EXTR_IF_EXISTS - 仅在当前符号表中已有同名变量时,覆盖它们的值。其它的都不处理。- EXTR_PREFIX_IF_EXISTS - 仅在当前符号表中已有同名变量时,建立附加了前缀的变量名,其它的都不处理。- EXTR_REFS - 将变量作为引用提取。导入的变量仍然引用了数组参数的值。
prefix可选。如果 extract_rules 参数的值是 EXTR_PREFIX_SAME、EXTR_PREFIX_ALL、 EXTR_PREFIX_INVALID 或 EXTR_PREFIX_IF_EXISTS,则 prefix 是必需的。 该参数规定了前缀。前缀和数组键名之间会自动加上一个下划线。
    ## extract函数可以快速整合get和post请求的变量 extract($_GET);extract($_POST)
    extract($request->all());
    
    dump($signature,$queryfield,$editdata); 
    
    # 部分输出
    "5f6586d9ad56ed1dc124aace90b93e5a"
    "game"
    array:53 [
      "title" => "666"
      "catid" => "666"
      "status" => "1"
      "first_user" => "666"
      "islist" => "1"
      "is_bot" => "666"
      "dtitle" => "666"
      "maketableid" => "666"
      "sourceurl" => "666"
      "seodesc" => "666"
      "seokey" => "666"
    ]   

2、compact函数

compact

定义和用法

compact() 函数创建一个包含变量名和它们的值的数组

注释: 任何没有变量名与之对应的字符串都被略过

语法 compact(var1,var2...)

参数描述
var1必需。可以是带有变量名的字符串,或者是一个变量数组
var2,...可选。可以是带有变量名的字符串,或者是一个变量数组。允许多个参数
 $username = "test";
 $password = "123456";
 $login_times = "41";

 # 组装数据
 $res = compact("username", "password", "login_times");
 dump($res);
 
 ## 输出
 array:3 [
     "username"    => "test"
     "password"    => "123456"
     "login_times" => "100"
 ]

 # 插入数据库 laravel 框架
 DB::table('t_test')->insert($res);
 
 # laravel 框架 使用compact传递变量
  public function index()
    {
        $username = 'username';
        $login_times = '100';
        return view('user.list',compact('username','login_times'));
    }

3、array_slice函数

array_slice

定义和用法

array_slice() 函数返回数组中的选定部分

注释: 如果数组有字符串键名,所返回的数组将保留键名

语法 array_slice(array,start,length,preserve)

参数描述
array必需。规定数组。
start必需。数值。规定取出元素的开始位置。 0 = 第一个元素。 如果该值设置为正数,则从前往后开始取。如果该值设置为负数,则从后向前取 start 绝对值。 -2 意味着从数组的倒数第二个元素开始。
length可选。数值。规定被返回数组的长度。 如果该值设置为整数,则返回该数量的元素。如果该值设置为负数,则函数将在举例数组末端这么远的地方终止取出。如果该值未设置,则返回从 start 参数设置的位置开始直到数组末端的所有元素。
preserve可选。规定函数是保留键名还是重置键名。可能的值:- true - 保留键名- false - 默认。重置键名
   
    $lang_info = array("PHP", "JavaScript", "Java", "Python", "C++","SQL","Ruby");

    dump(array_slice($lang_info, 2));
    # 输出
    array:5 [
      0 => "Java"
      1 => "Python"
      2 => "C++"
      3 => "SQL"
      4 => "Ruby"
    ]

    dump(array_slice($lang_info, -2, 3));
    # 输出
    array:2 [
        0 => "SQL"
        1 => "Ruby"
    ]

    dump(array_slice($lang_info, 3, 3));
    # 输出
    array:3 [
      0 => "Python"
      1 => "C++"
      2 => "SQL"
    ]
    
    dump(array_slice($lang_info, 3, 3, true));
    # 输出
    array:3 [
        3 => "Python"
        4 => "C++"
        5 => "SQL"
    ]