php数组分类
Ⅰ php如何高效地对根据键值对数组元素进行归类
<?phpfunction filter($elem){ return $elem['type'] == '空调';}$arr=Array( Array('id' => 1,'type' => '空调'), Array('id' => 2,'type' => '电视机'), Array('id' => 3,'type' => '空调'));$newarr = array_filter($arr, 'filter');print_r($newarr);exit;
Ⅱ php数组如何根据相同值再分组
这个答案是错误的!请及时认清。我想问一下答主你是这么想的?
请查考下面的这些PHP函数
统计:
array_count_values 统计数组中所有的值出现的次数
array_proct 计算数组中所有值的乘积
array_sum 计算数组中所有值的和
count 计算数组中的单元数目或对象中的属性个数
sizeof count() 的别名
搜索:
array_key_exists 检查给定的键名或索引是否存在于数组中
array_search 在数组中搜索给定的值,如果成功则返回相应的键名
in_array 检查数组中是否存在某个值
排序:
array_multisort 对多个数组或多维数组进行排序
arsort 对数组进行逆向排序并保持索引关系
asort 对数组进行排序并保持索引关系
krsort 对数组按照键名逆向排序
ksort 对数组按照键名排序
natcasesort 用“自然排序”算法对数组进行不区分大小写字母的排序
natsort 用“自然排序”算法对数组排序
rsort 对数组逆向排序
sort 对数组排序
uasort 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联
uksort 使用用户自定义的比较函数对数组中的键名进行排序
usort 使用用户自定义的比较函数对数组中的值进行排序
shuffle 将数组打乱
交集:
array_intersect_assoc 带索引检查计算数组的交集
array_intersect_key 使用键名比较计算数组的交集
array_intersect_uassoc 带索引检查计算数组的交集,用回调函数比较索引
array_intersect_ukey 用回调函数比较键名来计算数组的交集
array_intersect 计算数组的交集
array_key_exists 用回调函数比较键名来计算数组的交集
array_uintersect_assoc 带索引检查计算数组的交集,用回调函数比较数据
array_uintersect 计算数组的交集,用回调函数比较数据
差集:
array_udiff_assoc 带索引检查计算数组的差集,用回调函数比较数据
array_udiff_uassoc 带索引检查计算数组的差集,用回调函数比较数据和索引
array_udiff 用回调函数比较数据来计算数组的差集
array_diff_assoc 带索引检查计算数组的差集
array_diff_key 使用键名比较计算数组的差集
array_diff_uassoc 用用户提供的回调函数做索引检查来计算数组的差集
array_diff_ukey 用回调函数对键名比较计算数组的差集
array_diff 计算数组的差集
获取数组的部分内容:
array_chunk 将一个数组分割成多个
array_filter 用回调函数过滤数组中的单元
array_keys 返回数组中所有的键名
array_slice 从数组中取出一段
array_values 返回数组中所有的值
加工出所需数组:
array_combine 创建一个数组,用一个数组的值作为其键名,另一个数组的值作 为其值
array_fill 用给定的值填充数组
array_flip 交换数组中的键和值
array_map 将回调函数作用到给定数组的单元上
array_merge_recursive 递归地合并一个或多个数组
array_merge 合并一个或多个数组
array_pad 用值将数组填补到指定长度
array_push 将一个或多个单元压入数组的末尾(入栈)
array_reverse 返回一个单元顺序相反的数组
array_shift 将数组开头的单元移出数组
array_splice 把数组中的一部分去掉并用其它值取代
array_unique 移除数组中重复的值
array_unshift 在数组开头插入一个或多个单元
array_walk_recursive 对数组中的每个成员递归地应用用户函数
array_walk 对数组中的每个成员应用用户函数
compact 建立一个数组,包括变量名和它们的值
range 建立一个包含指定范围单元的数组
单元:
array_pop 将数组最后一个单元弹出(出栈)
array_rand 从数组中随机取出一个或多个单元
current 返回数组中的当前单元
pos current() 的别名
each 返回数组中当前的键/值对并将数组指针向前移动一步
end 将数组的内部指针指向最后一个单元
key 返回数组中当前单元的键名
list 把数组中的值赋给一些变量
next 将数组中的内部指针向前移动一位
prev 将数组的内部指针倒回一位
reset 将数组的内部指针指向第一个单元
其他:
array_rece 用回调函数迭代地将数组简化为单一的值
extract 从数组中将变量导入到当前的符号表
array 新建一个数组
Ⅲ PHP根据二维数组元素数量拆分成若干个小数组
php数组分组可以使用函数array_chunk,按照给定的规则进行遍历,如果数组的num值大于8,就整除8,获取整除的数据,然后按照整除数进行分组分块即可。
Ⅳ PHP 数组遍历方法大全(foreach,list,each)
在PHP中数组分为两类:
数字索引数组和关联数组。
其中数字索引数组和C语言中的数组一样,下标是为0,1,2…
而关联数组下标可能是任意类型,与其它语言中的hash,map等结构相似。
下面介绍PHP中遍历关联数组的三种方法:
方法1:foreach
复制代码
代码如下:
<?php
$sports
=
array(
'football'
=>
'good',
'swimming'
=>
'very
well',
'running'
=>
'not
good');
foreach
($sports
as
$key
=>
$value)
{
echo
$key.":
".$value."<br
/>";
?>
输出结果:
football:
good
swimming:
very
well
running:
not
good
方法2:each
复制代码
代码如下:
<?php
$sports
=
array(
'football'
=>
'good',
'swimming'
=>
'very
well',
'running'
=>
'not
good');
while
($elem
=
each($sports))
{
echo
$elem['key'].":
".$elem['value']."<br
/>";
?>
方法3:list
&
each
复制代码
代码如下:
<?php
$sports
=
array(
'football'
=>
'good',
'swimming'
=>
'very
well',
'running'
=>
'not
good');
while
(list($key,
$value)
=
each($sports))
{
echo
$key.":
".$value."<br
/>";
?>
Ⅳ php 一维数组、二维数组、多维数组区别详解
简单说说吧:
一维数组:[ 0 ]索引 =>指向 [ ... ]内容
array { [ 0 ]=>[ 内容 ],[ 1 ]=>[ 内容 ],[ 2 ]=>[ 内容 ],[ 3 ]=>[ 内容 ],[ 4 ]=>[ 内容 ]}
二维数组:
array {
[ 0 ]=>array { [ 0 ]=>[ 内容 ],[ 1 ]=>[ 内容 ],[ 2 ]=>[ 内容 ],[ 3 ]=>[ 内容 ],[ 4 ]=>[ 内容 ] },
[ 1 ]=>array { [ 0 ]=>[ 内容 ],[ 1 ]=>[ 内容 ],[ 2 ]=>[ 内容 ],[ 3 ]=>[ 内容 ],[ 4 ]=>[ 内容 ] },
[ 2 ]=>array { [ 0 ]=>[ 内容 ],[ 1 ]=>[ 内容 ],[ 2 ]=>[ 内容 ],[ 3 ]=>[ 内容 ],[ 4 ]=>[ 内容 ] },
[ 3 ]=>array { [ 0 ]=>[ 内容 ],[ 1 ]=>[ 内容 ],[ 2 ]=>[ 内容 ],[ 3 ]=>[ 内容 ],[ 4 ]=>[ 内容 ] },
[ 4 ]=>array { [ 0 ]=>[ 内容 ],[ 1 ]=>[ 内容 ],[ 2 ]=>[ 内容 ],[ 3 ]=>[ 内容 ],[ 4 ]=>[ 内容 ] }
}
三维数组:
array {
[ 0 ] =>
array {
[ 0 ]=>array { [ 0 ]=>[ 内容 ],[ 1 ]=>[ 内容 ],[ 2 ]=>[ 内容 ],[ 3 ]=>[ 内容 ],[ 4 ]=>[ 内容 ] },
[ 1 ]=>array { [ 0 ]=>[ 内容 ],[ 1 ]=>[ 内容 ],[ 2 ]=>[ 内容 ],[ 3 ]=>[ 内容 ],[ 4 ]=>[ 内容 ] },
[ 2 ]=>array { [ 0 ]=>[ 内容 ],[ 1 ]=>[ 内容 ],[ 2 ]=>[ 内容 ],[ 3 ]=>[ 内容 ],[ 4 ]=>[ 内容 ] },
[ 3 ]=>array { [ 0 ]=>[ 内容 ],[ 1 ]=>[ 内容 ],[ 2 ]=>[ 内容 ],[ 3 ]=>[ 内容 ],[ 4 ]=>[ 内容 ] },
[ 4 ]=>array { [ 0 ]=>[ 内容 ],[ 1 ]=>[ 内容 ],[ 2 ]=>[ 内容 ],[ 3 ]=>[ 内容 ],[ 4 ]=>[ 内容 ] }
}
[ 1 ] =>
array {
[ 0 ]=>array { [ 0 ]=>[ 内容 ],[ 1 ]=>[ 内容 ],[ 2 ]=>[ 内容 ],[ 3 ]=>[ 内容 ],[ 4 ]=>[ 内容 ] },
[ 1 ]=>array { [ 0 ]=>[ 内容 ],[ 1 ]=>[ 内容 ],[ 2 ]=>[ 内容 ],[ 3 ]=>[ 内容 ],[ 4 ]=>[ 内容 ] },
[ 2 ]=>array { [ 0 ]=>[ 内容 ],[ 1 ]=>[ 内容 ],[ 2 ]=>[ 内容 ],[ 3 ]=>[ 内容 ],[ 4 ]=>[ 内容 ] },
[ 3 ]=>array { [ 0 ]=>[ 内容 ],[ 1 ]=>[ 内容 ],[ 2 ]=>[ 内容 ],[ 3 ]=>[ 内容 ],[ 4 ]=>[ 内容 ] },
[ 4 ]=>array { [ 0 ]=>[ 内容 ],[ 1 ]=>[ 内容 ],[ 2 ]=>[ 内容 ],[ 3 ]=>[ 内容 ],[ 4 ]=>[ 内容 ] }
}
[ 2 ] =>
array {
[ 0 ]=>array { [ 0 ]=>[ 内容 ],[ 1 ]=>[ 内容 ],[ 2 ]=>[ 内容 ],[ 3 ]=>[ 内容 ],[ 4 ]=>[ 内容 ] },
[ 1 ]=>array { [ 0 ]=>[ 内容 ],[ 1 ]=>[ 内容 ],[ 2 ]=>[ 内容 ],[ 3 ]=>[ 内容 ],[ 4 ]=>[ 内容 ] },
[ 2 ]=>array { [ 0 ]=>[ 内容 ],[ 1 ]=>[ 内容 ],[ 2 ]=>[ 内容 ],[ 3 ]=>[ 内容 ],[ 4 ]=>[ 内容 ] },
[ 3 ]=>array { [ 0 ]=>[ 内容 ],[ 1 ]=>[ 内容 ],[ 2 ]=>[ 内容 ],[ 3 ]=>[ 内容 ],[ 4 ]=>[ 内容 ] },
[ 4 ]=>array { [ 0 ]=>[ 内容 ],[ 1 ]=>[ 内容 ],[ 2 ]=>[ 内容 ],[ 3 ]=>[ 内容 ],[ 4 ]=>[ 内容 ] }
}
[ 3 ] =>
array {
[ 0 ]=>array { [ 0 ]=>[ 内容 ],[ 1 ]=>[ 内容 ],[ 2 ]=>[ 内容 ],[ 3 ]=>[ 内容 ],[ 4 ]=>[ 内容 ] },
[ 1 ]=>array { [ 0 ]=>[ 内容 ],[ 1 ]=>[ 内容 ],[ 2 ]=>[ 内容 ],[ 3 ]=>[ 内容 ],[ 4 ]=>[ 内容 ] },
[ 2 ]=>array { [ 0 ]=>[ 内容 ],[ 1 ]=>[ 内容 ],[ 2 ]=>[ 内容 ],[ 3 ]=>[ 内容 ],[ 4 ]=>[ 内容 ] },
[ 3 ]=>array { [ 0 ]=>[ 内容 ],[ 1 ]=>[ 内容 ],[ 2 ]=>[ 内容 ],[ 3 ]=>[ 内容 ],[ 4 ]=>[ 内容 ] },
[ 4 ]=>array { [ 0 ]=>[ 内容 ],[ 1 ]=>[ 内容 ],[ 2 ]=>[ 内容 ],[ 3 ]=>[ 内容 ],[ 4 ]=>[ 内容 ] }
}
[ 4 ] =>
array {
[ 0 ]=>array { [ 0 ]=>[ 内容 ],[ 1 ]=>[ 内容 ],[ 2 ]=>[ 内容 ],[ 3 ]=>[ 内容 ],[ 4 ]=>[ 内容 ] },
[ 1 ]=>array { [ 0 ]=>[ 内容 ],[ 1 ]=>[ 内容 ],[ 2 ]=>[ 内容 ],[ 3 ]=>[ 内容 ],[ 4 ]=>[ 内容 ] },
[ 2 ]=>array { [ 0 ]=>[ 内容 ],[ 1 ]=>[ 内容 ],[ 2 ]=>[ 内容 ],[ 3 ]=>[ 内容 ],[ 4 ]=>[ 内容 ] },
[ 3 ]=>array { [ 0 ]=>[ 内容 ],[ 1 ]=>[ 内容 ],[ 2 ]=>[ 内容 ],[ 3 ]=>[ 内容 ],[ 4 ]=>[ 内容 ] },
[ 4 ]=>array { [ 0 ]=>[ 内容 ],[ 1 ]=>[ 内容 ],[ 2 ]=>[ 内容 ],[ 3 ]=>[ 内容 ],[ 4 ]=>[ 内容 ] }
}
}
维数越多,嵌套越复杂,头脑要清晰啊!
Ⅵ php中数组的分类有哪两种
1、索引数组
有两种创建索引数组的方法:
索引是自动分配的(索引从 0 开始):
$cars=array("porsche","BMW","Volvo");
2、关联数组
关联数组是使用您分配给数组的指定键的数组。
有两种创建关联数组的方法:
$age=array("Bill"=>"35","Steve"=>"37","Elon"=>"43");
(6)php数组分类扩展阅读
实用函数——
有相当多的实用函数作用于数组,参见数组函数一节。
注: unset() 函数允许取消一个数组中的键名。要注意数组将不会重建索引。
<?php
$a = array( 1 => 'one', 2 => 'two', 3 => 'three' );
unset( $a[2] );
/* 将产生一个数组,定义为
$a = array( 1=>'one', 3=>'three');
而不是
$a = array( 1 => 'one', 2 => 'three');
*/
$b = array_values($a);
// Now $b is array(0 => 'one', 1 =>'three')
?>
foreach 控制结构是专门用于数组的。它提供了一个简单的方法来遍历数组。
Ⅶ 如何实现PHP根据数组的值进行分组
PHP根据数组的值分组,php array中没有自带这个函数但是很常用
代码:
$_array = array(
array(1,11,'2016-05-18'),
array(2,11,'2016-05-18'),
array(3,22,'2016-05-18'),
array(4,22,'2016-05-18'),
array(5,33,'2016-05-19'),
array(6,33,'2016-05-19'),
array(7,44,'2016-05-19'),
array(8,44,'2016-05-19'),
array(9,55,'2016-05-20'),
array(10,55,'2016-05-20'),
);
var_mp(array_val_chunk($_array));
function array_val_chunk($array){
$result = array();
foreach ($array as $key => $value) {
$result[$value[1].$value[2]][] = $value;
}
$ret = array();
//这里把简直转成了数字的,方便同意处理
foreach ($result as $key => $value) {
array_push($ret, $value);
}
return $ret;
}
运行结果如下:
array(5) {
[0]=>
array(2) {
[0]=>
array(3) {
[0]=>
int(1)
[1]=>
int(11)
[2]=>
string(10) "2016-05-18"
}
[1]=>
array(3) {
[0]=>
int(2)
[1]=>
int(11)
[2]=>
string(10) "2016-05-18"
}
}
[1]=>
array(2) {
[0]=>
array(3) {
[0]=>
int(3)
[1]=>
int(22)
[2]=>
string(10) "2016-05-18"
}
[1]=>
array(3) {
[0]=>
int(4)
[1]=>
int(22)
[2]=>
string(10) "2016-05-18"
}
}
[2]=>
array(2) {
[0]=>
array(3) {
[0]=>
int(5)
[1]=>
int(33)
[2]=>
string(10) "2016-05-19"
}
[1]=>
array(3) {
[0]=>
int(6)
[1]=>
int(33)
[2]=>
string(10) "2016-05-19"
}
}
[3]=>
array(2) {
[0]=>
array(3) {
[0]=>
int(7)
[1]=>
int(44)
[2]=>
string(10) "2016-05-19"
}
[1]=>
array(3) {
[0]=>
int(8)
[1]=>
int(44)
[2]=>
string(10) "2016-05-19"
}
}
[4]=>
array(2) {
[0]=>
array(3) {
[0]=>
int(9)
[1]=>
int(55)
[2]=>
string(10) "2016-05-20"
}
[1]=>
array(3) {
[0]=>
int(10)
[1]=>
int(55)
[2]=>
string(10) "2016-05-20"
}
}
}