php数组函数常见的那些?
web PHP 2019-03-28 1788 0
关于本站

“最难不过坚持”

本人承接扒站仿站,php网站维护,病毒查杀,网站编辑,网站改版,html制作

有需要网站维护,改版,病毒查杀,网站编辑,网站备案,html制作等相关的工作可以联系我。
本人有多年相关工作经验,也可提供免费咨询,交个朋友。
有需要探讨问题的朋友,也可以加我微信,共同探讨!
微信:15011482830 QQ:408917339

6452179 2613 39
最新评论
https://jueru.net/
评 留言
:weixiao:
评 留言
:shuijiao: :weiqu: :zhenbang: :leng:
评 留言
:yiwen: :yiwen: :yiwen: :yiwen:
评 EasySass: could not generate CSS file. See Output panel for details.
这个业务逻辑多少都有点奇怪了,阅读浏览次数增值在新闻详情页的控制器方法里setInc,这怎么还写进模型事件里了。如果非要用onAfterRead也可以,把新闻文章的内容单独分出来一个news_content表,然后把它和news做关联,然后给news_content表的onAfterRead事件做增值处理,这样点进新闻页内查询到文章内容时才会触发它。
评 TP6模型事件-查询后onAfterRead不好用
文章标签更多
ThinkPHP (254)
Mysql (58)
DedeCms (33)
jQuery (67)
证件照 (1)
setInc (4)
setDec (4)
onclick (5)
打开边栏(ESC) 关闭边栏(ESC)

php数组函数常见的那些? (array_merge、in_array的作用)
PHP中以array_开头的数组函数有哪些,并说出使用方法(至少6个)

一、数组遍历函数

<?php
// list();  //不是真正的函数,而是PHP的语言结构,用于给一组变量赋值,仅能用于索引数组
// each();  //返回数组当前元素的键值对,并将指针移动到下一个元素位置
// while(); //可配合list或each使用:while(list($key, $value) = each($arr)){each $key, $value; }
$arr = array('a','b','c');
while (list($key, $value) = each($arr)) {
    echo $key, $value;
	echo '<br>';
}
?>

二、数组内部指针控制

<?php
// current();  //读取指针位置的内容
// key();      //读取当前指针指向内容的索引值
// next();     //将数组中的内部指针指向下一单元
// prev();     //将数组内部指针倒回一位
// end();      //将数组内部指针指向最后一个元素
// reset();    //将目前指针指向第一个索引位置

$people = array("Bill", "Steve", "Mark", "David");

echo current($people) . "<br>"; // 当前元素是 Bill
echo next($people) . "<br>"; // Bill 的下一个元素是 Steve
echo current($people) . "<br>"; // 现在当前元素是 Steve
echo prev($people) . "<br>"; // Steve 的上一个元素是 Bill
echo end($people) . "<br>"; // 最后一个元素是 David
echo prev($people) . "<br>"; // David 之前的元素是 Mark
echo current($people) . "<br>"; // 目前的当前元素是 Mark
echo reset($people) . "<br>"; // 把内部指针移动到数组的首个元素,即 Bill
echo next($people) . "<br>"; // Bill 的下一个元素是 Steve

var_dump (each($people)); // 返回当前元素的键名和键值(目前是 Steve),并向前移动内部指针
?>

三、数组键值操作函数

<?php
$arr = array("Name"=>"Bill","Age"=>"60","Country"=>"USA",'Weight'=>"60");
var_dump($arr);
// array_values() 获得数组的值
var_dump(array_values($arr));
// array_keys() 获得数组的键名
var_dump(array_keys($arr));
// array_flip() 数组中的值与键名互换(如果有重复前面的会被后面的覆盖)
var_dump(array_flip($arr));
// array_search() 函数在数组中搜索某个键值,并返回对应的键名。
echo array_search('Bill',$arr); // 返回值为Name
// array_reverse()将数组中的元素翻转(前后顺序)
var_dump(array_reverse($arr));
// in_array() 函数搜索数组中是否存在指定的值。
// 注释:如果 search 参数是字符串且 type 参数被设置为 TRUE,则搜索区分大小写。
if (in_array("bill", $arr,true)){
	echo "匹配已找到";
}else{
	echo "匹配未找到";
}
// array_key_exists() 函数检查某个数组中是否存在指定的键名,如果键名存在则返回 true,如果键名不存在则返回 false。
// 键区分大小写
if (array_key_exists("Name",$arr)){
	echo "键存在!";
}else{
	echo "键不存在!";
}
// array_count_values() 统计数组中所有值出现的次数
var_dump(array_count_values($arr));
// array_unique() 删除数组中重复的值
var_dump(array_unique($arr));
?>

四、数组回调函数

<?php
// array_filter() 使用回调函数过滤数组中的元素,如果回调返回true则当前的元素被包含到返回数组中
function test_odd($var){
	return($var & 1); // &是位运算符 3 & 1返回1,即true,所以下面的回调函数返回Array ( [3] => 3 )
}
$a1 = array("a","b",2,3,4);
print_r(array_filter($a1,"test_odd"));

// array_walk() 函数对数组中的每个元素应用用户自定义函数。在函数中,数组的键名和键值是参数。
function myfunction($value,$key){
	echo "The key $key has the value $value<br>";
}
$a=array("a"=>"red","b"=>"green","c"=>"blue");
array_walk($a,"myfunction");

// array_map() 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组。
function myfunction2($v){
	return ($v*$v);
}
$a = array(1,2,3,4,5);
print_r(array_map("myfunction2",$a));
?>

五、数组的分段和填充

<?php
// array_slice($arr, 0, 3);    //将数组中的一段取出,此函数忽略键名(数组的分段)
$a = array("red","green","blue","yellow","brown");
print_r(array_slice($a,2,2));

// array_splice() 函数从数组中移除选定的元素,并用新元素取代它。该函数也将返回包含被移除元素的数组。
// 提示:如果函数没有移除任何元素(length=0),则将从 start 参数的位置插入被替换数组(参见例子 2)。
// 注释:不保留被替换数组中的键名。
$a1 = array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2 = array("a"=>"purple","b"=>"orange");
print_r(array_splice($a1,0,2,$a2));
print_r($a1);

// array_chunk($arr, 3, TRUE);   //将一个数组分割成多个,TRUE为保留原数组的键名(分割多个数组)
$cars = array("Volvo","BMW","Toyota","Honda","Mercedes","Opel");
print_r(array_chunk($cars,4,true));
?>

六、数组与栈,列队

<?php
$arr = array('a','b','c');
// array_push($arr, "apple", "pear") 将一个或多个元素压入数组栈的末尾(入栈),返回新数组的长度
echo array_push($arr, "apple", "pear");
var_dump($arr);

// array_pop($arr) 将数组栈的最后一个元素弹出(出栈)
echo array_pop($arr);
var_dump($arr);

// array_shift($arr);   //数组中第一个元素移出并返回(长度减1,其他元素向前移动一位,数字键名改为从零计数,文字键名不变)
echo array_shift($arr); 
var_dump($arr);

// array_unshift($arr,"aa",array(1,2));  //在数组的开头插入一个或多个元素,该函数返回新数组的长度
echo array_unshift($arr,"aa",array(1,2)); 
var_dump($arr);
?>

七、数组的排序

<?php
$arr = array('a','b','c');
// sort($arr);      //由小到大,忽略键名
sort($arr);
var_dump($arr);
// rsort($arr);     //由大到小,忽略键名
rsort($arr);
var_dump($arr);
// asort($arr);     //由小到大,保留键名
asort($arr);
var_dump($arr);
// arsort($arr);    //由大到小,保留键名
arsort($arr);
var_dump($arr);
// ksort($arr);     //按照键名正序排序
ksort($arr);
var_dump($arr);
// krsort($arr);    //按照键名逆序排序
krsort($arr);
var_dump($arr);
?>

八、数组的计算

<?php
$arr1 = array(1,2,3,4,5);
$arr2 = array(4,7,8,9);
// array_sum($arr);   //对数组内部的所有元素做求和运算(数组元素的求和)
echo array_sum($arr1);

// array_merge($arr1, $arr2); //合并两个或多个(相同字符串键名,后面覆盖前面,相同的数字键名,后面的附加到后面)
var_dump(array_merge($arr1, $arr2));

// array_diff($arr1, $arr2);       //返回差集结果数组 
var_dump(array_diff($arr1, $arr2));

// array_diff_assoc($arr1, $arr2, $arr3);  //返回差集结果数组,键名也做比较
var_dump(array_diff_assoc($arr1, $arr2));

// array_intersect($arr1, $arr2);  //返回交集结果数组 
var_dump(array_intersect($arr1, $arr2));
// array_intersect_assoc($arr1, $arr2);   //返回交集结果数组,键名也做比较
var_dump(array_intersect_assoc($arr1, $arr2));
?>

九、其他的数组函数

<?php
$arr = array('a'=>1,'b'=>2,'c'=>3,'d'=>2);
// array_unique($arr);   //移除数组中重复的值,新的数组中会保留原始的键名
$result = array_unique($arr);
var_dump($result);

// shuffle($arr);        // 将数组的顺序打乱
shuffle($arr); 
var_dump($arr);
?>

版权声明:本篇文章来源于网络。 来源链接

相关推荐
php实现ZIP压缩文件解压缩,中文乱码解决方法(重要)
PHP | 2019-04-30 5630
直接上代码,具体代码里面都有注释。直接中文压缩文件解压到中文文件夹。 <?php // 需开启配置 php_zip.dll // phpinfo(); header("Content-type:text/html;charset=utf-8"); /* * $filename 被解压文件名 * $path 解压...
openssl_private_decrypt解密失败
PHP | 2019-01-16 5605
复制别人的解密程序,原程序可以解密,复制过来就不可以 一步步尝试发现,秘钥换行符有区别, 原秘钥有换行符,复制过来不知道什么时候把换行符清空了,成了一行字符串了。
评论:0条
评论加载中...
发表评论