1、list()
list() 和 array() 一样,不是一个函数,而是一个语言结构,作用是为一组变量赋值。
PHP手册中的介绍
使用详情
$info = [‘this is a‘,‘this is b‘,‘this is c‘];list($a,$b,$c) = $info;print<<
$b
$c
EOT;
运行结果
2、each()
//实例代码 遍历$arr
<?php $arr = [‘a‘=>‘this is a‘,‘b‘=>‘this is b‘,‘c‘=>‘this is c‘];while($tmp = each($arr))
{echo $tmp[‘key‘].‘:‘.$tmp[‘value‘].‘
‘;
}
运行结果:
3、数组指针操作
current()
key()
next()
prev()
end()
reset()
2 key(); //读取当前指针指向内容的索引值
3 next(); //将数组中的内部指针指向下一单元
4 prev(); //将数组内部指针倒回一位
5 end(); //将数组内部指针指向最后一个元素
6 reset(); //将目前指针指向第一个索引位置*/
$info =[‘a‘ => ‘this is a‘,
‘b‘ => ‘this is b‘,
‘c‘ => ‘this is c‘,
‘d‘ => ‘this is d‘];echo key($info).‘:‘.current($info).‘
‘;next($info);echo key($info).‘:‘.current($info).‘
‘;end($info);echo key($info).‘:‘.current($info).‘
‘;reset($info);echo key($info).‘:‘.current($info).‘
‘;
运行结果:
4、键值操作函数
$info =[‘a‘ => ‘apple‘,
‘b‘ => ‘blog‘,
‘c‘ => ‘cat‘,
‘d‘ => ‘dog‘];echo ‘keys:
‘;//输出info数组的所有键
var_dump(array_keys($info));echo ‘
‘;echo ‘values:
‘;//输出info数组的所有值
var_dump(array_values($info));echo ‘
‘;//转换info数组 键值互换
echo ‘flips:
‘;var_dump(array_flip($info));echo ‘
‘;//搜索apple
echo ‘search:
‘;echo ‘apple key is :‘.array_search(‘apple‘,$info);echo ‘
‘;//元素翻转
echo ‘reverse:
‘;var_dump(array_reverse($info));echo ‘
‘;//检查元素
echo ‘in?
‘;echo ‘blog is in $info? ‘.var_dump(in_array(‘blog‘,$info));echo ‘
‘;//检查键
echo ‘key in?
‘;echo ‘b is in $info? ‘.var_dump(array_key_exists(‘b‘,$info));echo ‘
‘;//统计值的出现次数
$info[] = ‘blog‘;$info[] = ‘blog‘;echo ‘value count
‘;var_dump(array_count_values($info));echo ‘
‘;//删除重复的值
echo ‘before unique
‘;var_dump($info);echo ‘
after unique
‘;var_dump(array_unique($info));
运行结果:
5、回调函数
示例数组:
$info =[‘a‘ => ‘apple‘,
‘b‘ => ‘blog‘,
‘c‘ => ‘cat‘,
‘d‘ => ‘dog‘];
array_filter();
PHP手册参考:
//array_filter();
//不使用flag
$filter_arr = array_filter($info,function($value){return strlen($value) == 3;
});var_dump($filter_arr);echo ‘
‘;//使用flag
$filter_arr = array_filter($info,function($key){return in_array($key,[‘a‘,‘c‘]);
},ARRAY_FILTER_USE_KEY);var_dump($filter_arr);echo ‘
‘;$filter_arr = array_filter($info,function($value,$key){return in_array($key,[‘a‘,‘c‘]) && $value == ‘apple‘;
},ARRAY_FILTER_USE_BOTH);var_dump($filter_arr);echo ‘
‘;
输出结果:
array_walk();
PHP手册参考:
//array_walk();
//不使用 userdata
array_walk($info,function($value,$key){echo "$key:$value ";
});echo "
";//使用 userdata
array_walk($info,function(&$value,$key,$userdata){$value = $userdata.‘-‘.$value;
},‘php‘);var_dump($info);echo "
";
输出结果:
array_map();
PHP手册参考:
//array_map();
//单个数组
array_map(function($n){echo "$n ";
},$info);echo "
";//多个数组
$info_2 =[‘e‘ => ‘egg‘,
‘f‘ => ‘filco‘,
‘g‘ => ‘good‘];array_map(function($n1,$n2){echo "1:$n1-2:$n2 ";
},$info,$info_2);echo ‘
‘;
运行结果:
6、数组分割
array_slice()
PHP手册参考
array_splice()
PHP手册参考:
array_chunk()
PHP手册:
测试代码:
<?php $info =[‘a‘ => ‘apple‘,
‘b‘ => ‘blog‘,
‘c‘ => ‘cat‘,
‘d‘ => ‘dog‘];//array_slice()
echo ‘array_slice:
‘;print_r(array_slice($info,0,3));echo ‘
‘;//array_splice();
echo ‘array_splice:
‘;echo ‘原数组:
‘;print_r($info);echo ‘
‘;//替换掉前两位
$tmp = array_splice($info,0,2,[‘king‘,‘queen‘]);echo ‘替换后的数组:
‘;print_r($info);echo ‘
‘;echo ‘替换掉数组:
‘;print_r($tmp);echo ‘
‘;//恢复原数组
$info =[‘a‘ => ‘apple‘,
‘b‘ => ‘blog‘,
‘c‘ => ‘cat‘,
‘d‘ => ‘dog‘];//array_chunk();
echo ‘array_splice:
‘;echo ‘替换后的数组:
‘;$tmp = array_chunk($info,2);var_dump($tmp);
运行结果:
7、数组运算
测试代码:
<?php $info =[‘a‘ => ‘apple‘,
‘b‘ => ‘blog‘,
‘c‘ => ‘cat‘,
‘d‘ => ‘dog‘];$info_2 =[‘e‘ => ‘apple‘,
‘f‘ => ‘egg‘,
‘g‘ => ‘java‘,
‘h‘ => ‘cat‘];$info_num = [120,10,1];//array_sum
echo ‘array_sum:
‘;echo array_sum($info_num);echo ‘
‘;echo array_sum($info); //只对元素中的数值进行求和
echo ‘
‘;//array_merge
echo ‘array_merge:
‘;print_r(array_merge($info,$info_2,$info_num));echo ‘
‘;//array_diff - 返回在info中但不在其他arr中的值
echo ‘array_diff:
‘;print_r(array_diff($info,$info_2));echo ‘
‘;//array_intersect - 返回在info中也在在其他arr中的值
echo ‘array_intersect:
‘;print_r(array_intersect($info,$info_2));echo ‘
‘;
运行结果:
8、数组的栈和队列操作
9、数组的排序操作
10、其他常用函数