从php5开始,可以$value 之前加上 & 来修改数组的元素。
此方法将以引用赋值而不是拷贝一个值,减少了空间浪费,是个不错的方法。
例子:
<?php $arr = array(1, 2, 3, 4); foreach ($arr as &$value) { $value = $value * 2; } // $arr is now array(2, 4, 6, 8) ?>
此方法仅在被遍历的数组可以被引用时才可用(例如是个变量)。
例子:
<?php foreach (array(1, 2, 3, 4) as &$value) { $value = $value * 2; } ?>
详细参考:http://www./shouce/php5/control-structures.foreach.html
php数组操作函数:
array(key=value);建立数组
//显示数组 print_r($array);
//使用compact()函数新建数组,并把参数做为新数组的单元;
$newArray = compact(red,green,yellow,blue,array);
//使用extract()函数把数组中的单元转换为变量 extract($exArray); echo $key1 $key2 $
array("key"=>"value");建立数组
//显示数组
print_r($array);
//使用compact()函数新建数组,并把参数做为新数组的单元;
$newArray = compact("red","green","yellow","blue","array");
//使用extract()函数把数组中的单元转换为变量
extract($exArray);
echo "$key1 $key2 $key3 $key4 $key5";
※检查值、键
array_key_exists($key,$array);//检查数组键
in_array($value,$array);//检查值于数组
※获取值
//使用array_values()()取得数组的值
$carValues = array_values($car);
//取出数组的键名
$twoKeys = array_keys()($two);
key($array);//输出当前单元的键名
//数组定义后,使用current()取得当前单元的值
$red = current($array);
list($red,$green) = $array;//把数组中的值赋与变量,$array = array("红色","绿色");
each($two);//返回数组中当前单元的键和值
※遍历数组
foreach($two as $subArray);//遍历数组
while(list($key,$value) = each($array)){
echo "$key=>$value,";//使用each遍历数组
}
※填充数组
//向左、右填充数组
array_pad($array,+3,"shuzhi");//2参数为正从左往右填充,数值大于单元数时才填充
$array1 = array_fill(5,5,"test");//使用array_fill()填充这个数组的值,值为test,从第5个单元开始填充,一共填充5个单元
//填充数组键名
$keys = array('string', 5, 10, 'str');
$array3 = array_fill_keys($keys,"数组值");
//使用array_filp()函数交换键名与值
$speed = array_flip($speed);
//使用array_splice()函数替换第6个单元的值为7
$output = array_splice($input,6,0,7);
//使用array_splice()函数删除数组单元,只保留前5个单元
$output = array_splice($input,5);
$array1 = range(10,100,10); //使用range()函数的第三个参数,设置单元之间的步进值
※排序
shuffle($array);//将数组顺序打乱
//使用array_multisort()()对三个数组排序
array_multisort($sort1,$sort2,$sort3);
//把这个数组进行排序,并保持索引关系
asort($array);
//把测试数组进行逆向排序,并保持索引关系
arsort($array);
//使用ksort()对数组按键名排序
ksort($array);
//使用krsort()函数按键名逆向排序
krsort($array);
//使用sort()对测试数组进行排序[以键名排列]
sort($array);
//使用natsort()排序[自然排序,以数值排列]对单元数值大小写敏感
natsort($array);
//使用natcasesort()函数排序[自然排序]但是忽略数值大小写
natcasesort($array);
//使用array_reverse()函数排序,数组单元按相反排列
$newArray = array_reverse($array,TRUE);//TRUE设时保留原键名
※交集、差集
//使用array_diff()计算三个数组的差集[对数组数值比较]
$result = array_diff($dog1,$dog2,$dog3);
//使用array_diff_assoc()计算三个数组的差集[对数值和键名比较]
$result = array_diff_assoc($dog1,$dog2,$dog3);
//使用array_diff_key()计算三个数组的差集[比较键名]
$result = array_diff_key($dog1,$dog2,$dog3);
//使用array_intersect()计算三个数组的交集[对数组数值比较]
$result = array_intersect($dog1,$dog2,$dog3);
//使用array_intersect_assoc()计算三个数组的交集[对数值和键名比较]
$result = array_intersect_assoc($dog1,$dog2,$dog3);
//使用array_intersect_key()计算三个数组的交集[比较键名]
$result = array_intersect_key($dog1,$dog2,$dog3);
※合并数组
//使用array_merge()函数合并数组
$result = array_merge($array1,$array2,$array3,$array4,$array5);
array_rand($input,10);//随机取出10个单元
count($array,COUNT_RECURSIVE);//显示数组单元数目,2参数只可为1或者COUNT_RECURSIVE,有时可遍历多维数组
※出入栈
//数组出栈,后进先出,数组最后一个单元弹出
array_pop($array);
//数组入栈,将7,8两个数值添加到数组尾部
array_push($array,7,8);
//将数组开头单元移出数组
array_shift($array);
//将7,8添加入数组开头
array_unshift($array,7,8);
在php中strip_tags()() 函数,可以剥去 HTML、XML 以及 PHP 的标签。
用法:
strip_tags(string,allow)
后面的allow是可选的。填入的话表示什么标签被允许。
附,php使用strip_tags清除所有标记。
string strip_tags(string str);
函数strip_tags可去掉字符串中包含的任何 HTML 及 PHP 的标记字符串。若是字符串的 HTML 及 PHP 标签原来就有错,例如少了大于的符号,则也会返回错误。
string strip_tags ( string str [, string allowable_tags] ) 返回一个去除了HTML标签的字符串;可以使用第二个参数来设置不需要删除的标签。
例如:
<?php strip_tags($str, "<a>"); //保留$str中的a标签 ?>
问题1,strip_tags如何保留多个HTML标签?
只需要将多个标签用空格分隔后写到strip_tags的第二个参数中,代码:
strip_tags($str, "<p> <b>");
问题2,php删除html标记中的特定标签的方法?
代码:
<?php /** * 删除html标记中的特定标签 * edit www. */ function strip_selected_tags($text, $tags = array()) { $args = func_get_args(); $text = array_shift($args); $tags = func_num_args() > 2 ? array_diff($args,array($text)) : (array)$tags; foreach ($tags as $tag){ if( preg_match_all( '/<'.$tag.'[^>]*>([^<]*)</'.$tag.'>/iu', $text, $found) ){ $text = str_replace()($found[0],$found[1],$text); } } return preg_replace( '/(<('.join('|',$tags).')( | |.)*/>)/iu', '', $text); } $str = "[url="]123[/url]"; echo strip_selected_tags($str,array('b')); ?>