php数组函数(一)

is_array

  • is_array – 检测变量是否是数组
  • 说明:
    is_aray(mixed $var):bool
    如果 $var 是array,则返回true,否则返回false
$arr = [1,2,3];
var_dump(is_array($arr)); // bool(true)
$str = "123";
var_dump(is_array($str)); //  bool(false)

explode

  • explode – 使用一个字符串分割另一个字符串

  • 说明:
    explode(string $delimiter, string $string, int $limit = ?):array
    此函数返回由字符串组成的数组,每个元素都是 string 的一个子串,他们被字符串 delimiter 作为边界点分割出来。

  • 参数:

    • delimiter:
      边界上的分隔字符。
    • string:
      输入的字符串
    • limit:
      如果设置了 limit 参数并且是正数,则返回的数组包含做多 limit 个元素,而最后那个元素将包含 string 的剩余部分。
      如果 limit 参数是负数,则返回除了最后 -limit 个元素外的多有元素。
      如果 limit 是0,则会被当做1
  • 返回值:
    此函数返回由字符串组成的 array,每个元素都是 string 的一个子串,它们被字符串 delimiter 作为边界点分割出来。
    如果 delimiter 为空字符串(""),explode() 将返回false。如果 delimiter 所包含的值在 string 中找不到,则使用了负数的 limit,那么会返回空的 array,否则返回包含 string 单个元素的数组

$string = "/data/www/project/publi/index.php";
$dir_arr = explode("/", $string);
var_dump($dir_arr);
// array(6) { 
	// [0]=> string(0) "" 
	// [1]=> string(4) "data" 
	// [2]=> string(3) "www" 
	// [3]=> string(7) "project" 
	// [4]=> string(5) "publi" 
	// [5]=> string(9) "index.php"
// }



关于limit 参数的案例:
$str = 'one|two|three|four';
print_r(explode('|', $str, 2));
// Array ( [0] => one [1] => two|three|four ) 
print_r(explode('|', $str, 0));
// Array ( [0] => one|two|three|four ) 
print_r(explode('|', $str, 1));
//Array ( [0] => one|two|three|four ) 
print_r(explode('|', $str, -1));
// Array ( [0] => one [1] => two [2] => three )

implode

  • impload – 将一个一维数组转化为字符串
  • 说明:
    implode( string $glue, array $pieces ) : string
    implode( array $pieces ) : string
    用 过 glue 将一维数组的值连接为一个字符串
  • 参数:
    • glue:
      默认为空的字符串
    • pieces:
      你想要的转换的数组
  • 返回值:
    返回一个字符串,其内容为由 glue 分割开的数组的值。
$arr = ["lastname", "email", "phone"];
$comma_separated = implode(",", $arr);
var_dump($comma_separated);
// string(20) "lastname,email,phone"


var_dump(implode('hello', []));
// string(0) ""

var_dump(implode('', []));
// string(0) ""

var_dump(implode($arr));
// string(18) "lastnameemailphone"

split

  • split – 用正则表达式将字符串分割到数组中
  • php4, php5版本函数

preg_split

  • preg_split – 通过一个正则表达式分割字符串

  • 说明:
    preg_split( string $pattern, string $subject, int $limit = -1, int $flags = 0) : array
    通过一个正则表达式分割给定字符串。

  • 参数:

    • pattern:
      用于搜索的模式,字符串形式
    • subject:
      输入字符串
    • limit:
      如果指定,将限制分割得到的子串最多只有 limit 个,返回的最后一个子串将包含所有剩余部分。limit 值为 -1,0或 null 时都代表 “不限制”。
    • flags:
      • flags 可以是任何下面标记的组合(以位或运算 | 组合):
      • PREG_SPLIT_NO_EMPTY:
        如果这个标记被设置,preg_split() 将仅返回分隔后的非空部分。
      • PREG_SPLIT_DELIM_CAPTURE
        如果这个标记设置了,用于分割的模式中的括号表达式将被捕获并返回。
      • PREG_SPLIT_OFFSET_CAPTURE
        如果这个标记被设置,对于每一个出现的匹配,返回时将将会附加字符串偏移量。
        注意:这将会改变返回数组中的每一个元素,使其每个元素成为一个由0个元素为分割后的子串,第1个元素为该子串在 subject 中的偏移量组成的数组。
  • 返回值:
    返回一个使用 pattern 边界分隔 subject 后得到的子串组成的数组,或者在失败时返回 false。

//使用逗号或空格(包含" ", \r, \t, \n, \f)分隔短语
$keywords = preg_split("/[\s,]+/", "hypertext language, programming");
print_r($keywords);
// Array
// (
    // [0] => hypertext
    // [1] => language
    // [2] => programming
// )

$str = 'string';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);
// Array
// (
    // [0] => s
    // [1] => t
    // [2] => r
    // [3] => i
    // [4] => n
    // [5] => g
// )

$chars = preg_split('//', $str);
print_r($chars);
// Array
// (
    // [0] => 
    // [1] => s
    // [2] => t
    // [3] => r
    // [4] => i
    // [5] => n
    // [6] => g
    // [7] => 
// )

$str = 'hypertext language programming';
$chars = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
print_r($chars);
// Array ( 
	// [0] => Array ( 
		// [0] => hypertext 
		// [1] => 0 
	// ) 
	// [1] => Array ( 
		// [0] => language 
		// [1] => 10 
	// ) 
	// [2] => Array ( 
		// [0] => programming 
		// [1] => 19 
	// ) 
// )

$chars = preg_split('/ /', $str);
print_r($chars);
// Array
// (
    // [0] => hypertext
    // [1] => language
    // [2] => programming
// )


$chars = preg_split('/ /', $str, 2, PREG_SPLIT_OFFSET_CAPTURE);
print_r($chars);
// Array
// (
// [0] => Array
	// (
		// [0] => hypertext
		// [1] => 0
	// )

// [1] => Array
	// (
		// [0] => language programming
		// [1] => 10
	// )

// )

$str = 'hypertext language programming';
$chars = preg_split('/hypertext/', $str, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
print_r($chars);
// Array
// (
    // [0] =>  language programming
// )
$chars = preg_split('/(hypertext)/', $str, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
print_r($chars);
// Array
// (
    // [0] => hypertext
    // [1] =>  language programming
// )

unset

  • unset – 释放给定的变量
  • 说明:
    unset(mixed $val, mixed $… = ?) : void
    unset() 销毁指定的变量。
    unset() 在函数中的行为会依赖于想要销毁的变量的类型而有所不同。
    如果在函数中 unset() 一个全局变量,则只有局部变量被销毁,而在调用环境中的变量将保持调用unset() 之前一样的值。
function destroy_foo() {
    global $foo;
    unset($foo);
}

$foo = 'bar';
destroy_foo();
echo $foo; // bar

// unset全局变量
function foo() 
{
    unset($GLOBALS['bar']);
}

$bar = "something";
foo();
var_dump($bar); // NULL

// unset掉引用变量,只有局部变量被销毁。
// 在调用环境中变量将保持调用 unset() 之前一样的值。
function foo(&$bar) {
    unset($bar);
    $bar = "blah";
}

$bar = 'something';
echo "$bar\n"; // something

foo($bar);
echo "$bar\n";// something

// unset 静态变量,在函数内部静态变量将销毁。
// 但是,再次调用函数时,静态变量被复原为上次销毁之前的值。
function foo()
{
    static $bar;
    $bar++;
    echo "Before unset: $bar, ";
    unset($bar);
    $bar = 23;
    echo "after unset: $bar\n";
}

foo(); // Before unset: 1, after unset: 23
foo(); // Before unset: 2, after unset: 23
foo(); // Before unset: 3, after unset: 23
  • 参数:

    • var:
      要销毁的变量
    • …:
      其他变量……
  • 返回值:
    没有返回值。

  • 注释:
    因为是一个语言结构而不是一个函数,不可以被可变函数调用
    在 unset() 一个无法访问的对象属性时,如果定义了 __unset() 则对调用这个重载方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值