array_filter() 函数的功能是使用回调函数过滤数组中的每一个元素。其函数原型如下:
array array_filter(array $input [, callback $function])
array_filter()函数仍将将$input数组中的每个值传递到回调函数$function中。如果回调函数返回true,则$input数组的当前元素会被包含在返回的结果数组中。数组的键名保留不变。
来看一个例子:
<?php
define('MAX_LENGTH', 4);
$words = array(
'long'=>'welcome to ',
'fuel',
'google',
'small'=>'true',
'recall',
);
function long_word($word)
{
return (strlen($word)>MAX_LENGTH);
}
echo "长度大于4字节的单词:\n";
print_r(array_filter($words, "long_word"));
?>
以上程序将获取超过指定字节长度的单词数组,以下是程序运行结果:
长度大于4字节的单词:
Array
(
[long] => welcome to
[1] => google
[2] => recall
)
您可能感兴趣的文章:
php创建数组的方法介绍
php使用array_unique判断数组中是否存在相同的值
php数组函数 in_array() 查找数组中是否存在指定值
php数组函数array_key_exists() 查找数组键名是否存在
php函数array_merge ()用法一例(合并同类数组)
php在多维数组中查找特定的value的方法
php从数组中提取变量的函数及应用实例
从数组中随机抽取一些元素的php代码
php增加与删除数组元素的方法
在php中,使用extract函数将变量从数组中导入到当前的符号表中。
本函数有3个参数,其函数原型如下:
int extract (array [, int $extract_type [, string $prefix]])
extract函数接受结合数组$array作为参数,并将其键名作为变量名,值作为变量的值。对每个键/值对都会在当前的符号表中建立变量。
先来看一个extract应用的例子:
$info = array(
"user_id"=>20130113",
"user_name"=>"xxx",
"position"=>"beijing"
);
extract($info);
?>
则转换后的结果为:
$user_id = 20130113;
$user_name = "xxx";
$position = "beijing";
当程序中包含了与数组元素键名相同的变量时,转换将与已存在的变量发生冲突。为了解决这种冲突,可以配置extract()函数的后两个参数,从而产生不同的输出结果。
下面为大家提供参数$extract_type的可取值及含义,EXTR_OVERWRITE是参数的默认值。
最后,extract()函数将返回成功提取的变量的数目。
参数$prefix仅在$extract_type为下列值时有效:EXTR_PREFIX_SAME,EXTR_PREFIX_ALL,EXTR_PREFIX_INVALID或EXTR_PREFIX_IF_EXISTS。如果附加了前缀后的结果不是合法的变量名,将不会转换为对应的变量。
来看一个extract()函数给出全部的参数时的应用例子:
<?php
$province = "北京";
$array = array(
"name"=>"我的那个她",
"province"=>"河北",
"age"=>21
);
//解析输出
extract($array, EXTR_PREFIX_SAME, "user");
print "$name, $province, $age, $user_province); //输出 ”我的那个她,北京,25,河北“
?>
您可能感兴趣的文章:
php创建数组的方法介绍
php使用array_unique判断数组中是否存在相同的值
php数组函数 in_array() 查找数组中是否存在指定值
php数组函数array_key_exists() 查找数组键名是否存在
php数组去重的小例子
php函数array_merge ()用法一例(合并同类数组)
有关php数组及循环的小例子
php在多维数组中查找特定的value的方法
加强版的array_unique函数(支持二维数组)
php数组回调过滤函数array_filter()的应用实例
php增加与删除数组元素的方法
在php程序中,要生成一个合法的url,不是将所需的变量串在一起就可以了,这主要是由于url的编码规范所决定的。
我们知道,一个合法的url包括一些必要的分隔符,如"/",":","、","@",".","=","?","&"或"#"等。
如果要在一个QUERY_STRING查询字符串的变量值中使用&,或在用户的密码中使用"@"字符,就可能会造成一定的混乱。
为了解决这类的问题,在为url中的普通字符(非分隔符)编码时作了如下的规定:
除"=","_",".",以及英文字符和数字外,其它的任何字符均将转换为由"%"和两个十六进制数字表示。例如,空格将用%20表示,"<"用"%3C"表示等。
在php中使用函数rawurlencode()进行这种url编码。
先来看一个例子吧,使用urlrawencode()函数进行url编码处理:
//访问ftp://www./我的文档/php教程.doc
echo '<a href="ftp://www.',rawurlencode("我的文档"),'/', rawencode("php教程.doc"),'">xxx 的目录"</a>';
?>
由于历史原因,在早期的url编码规定中,将空格转换为"+"。如果要兼容这种编码规则,可以使用urlencode()函数。
比如下面的例子:
//urlencode()编码
echo '<a href="/blog_article/mycgi/foo/.html', urlencode($userinput), '">test</a>';
?>
接下来我们讲,既然可以编码,当然也就可以解码了。
与上面的两个url编码函数相对应的解码函数分别是:rawurldecode() 和 urldecode(),例如下面这个例子中所用到的:
$a = explode()('&', $QUERY_STRING);
$i = 0;
while ($i < count($a))
{
$b = split('=', $a[$i]);
echo "Value for Parameter ", htmlspecialchars()(urldecode($b[0])),' is ', htmlspecialchars(urldecode($b[1])), "<br />\n";
$i++;
}
?>