0

0

请问一个数组整理方法

php中文网

php中文网

发布时间:2016-06-13 12:05:19

|

1071人浏览过

|

来源于php中文网

原创

请教一个数组整理方法


$abc = array(
a1=>array(a=>1,b=>1,c=1,d=2),
a2=>array(a=>1,b=>2,c=2,d=2),
a3=>array(a=>3,b=>2,c=3,d=2)
)

现在我需要将上面的二维数组合并为一维数组。
一维数组需要包含a=1 and b=1 这个数组的所有信息 和 a=3 这个数组的所有信息,我想请问一下,这种整理,使用一个foreach 可以整理出来么。
------解决方案--------------------
$abc = array(
'a1' => array('a' => 1, 'b' => 1, 'c' => 1, 'd' => 2),
'a2' => array('a' => 1, 'b' => 2, 'c' => 2, 'd' => 2),
'a3' => array('a' => 3, 'b' => 2, 'c' => 3, 'd' => 2),
);

$filter = array(
array( 'a' => 1, 'b' => 1),
array( 'a' => 3),
);

$res = array();
foreach($abc as $item) {
foreach($filter as $f) {
if(array_intersect_assoc($f, $item) == $f)
$res = array_merge($res, array_values($item));
}
}
print_r($res);

Array
(
[0] => 1
[1] => 1
[2] => 1
[3] => 2
[4] => 3
[5] => 2
[6] => 3
[7] => 2
)


------解决方案--------------------
$abc = array(
'a1'=>array('a'=>'1','b'=>'1','c'=>'1','d'=>'2'),
'a2'=>array('a'=>'1','b'=>'2','c'=>'2','d'=>'2'),
'a3'=>array('a'=>'3','b'=>'2','c'=>'3','d'=>'2')
);
$data1 = $data2 = array();
foreach ($abc as $key => $value) {
$v1 = isset($value['a']) ? $value['a'] : 0;
$v2 = isset($value['b']) ? $value['b'] : 0;
if ($v1 == 1 && $v2 == 2) {
$data1[] = $value;
}
if ($v1 == 3) {
$data2[] = $value;
} ??
}
print_r($data1);

print_r($data2);

------解决方案--------------------


$abc = array(
'a1'=>array('a'=>1,'b'=>1,'c'=>1,'d'=>2),
'a2'=>array('a'=>1,'b'=>2,'c'=>2,'d'=>2),
'a3'=>array('a'=>3,'b'=>2,'c'=>3,'d'=>2)
);

$n = array();

foreach($abc as $key=>$val){
if($val['a']==1 && $val['b']==1
------解决方案--------------------
$val['a']==3){
$n = array_merge($n,array_values($val));
}
}

print_r($n);
?>

Array
(
    [0] => 1
    [1] => 1
    [2] => 1
    [3] => 2
    [4] => 3
    [5] => 2
    [6] => 3
    [7] => 2
)
------解决方案--------------------

$abc = array(
'a1' => array('a' => 1, 'b' => 1, 'c' => 1, 'd' => 2),
'a2' => array('a' => 1, 'b' => 2, 'c' => 2, 'd' => 2),
'a3' => array('a' => 3, 'b' => 2, 'c' => 3, 'd' => 2),
);
$new_arr1=array();
$new_arr2=array();
$item1=array('a'=>1,'b'=>1);
$item2=array('a'=>3);
foreach($abc as $k=>$v){
$a=array_intersect_assoc($item1,$v);
$b=array_intersect_assoc($item2,$v);
if($a==$item1) $new_arr1=$v;
if($b==$item2) $new_arr2=$v;
}
print_r(array_merge(array_values($new_arr1),array_values($new_arr2)));


相关专题

更多
Word 字间距调整方法汇总
Word 字间距调整方法汇总

本专题整合了Word字间距调整方法,阅读下面的文章了解更详细操作。

2

2025.12.24

任务管理器教程
任务管理器教程

本专题整合了任务管理器相关教程,阅读下面的文章了解更多详细操作。

2

2025.12.24

AppleID格式
AppleID格式

本专题整合了AppleID相关内容,阅读专题下面的文章了解更多详细教程。

0

2025.12.24

csgo视频观看入口合集
csgo视频观看入口合集

本专题整合了csgo观看入口合集,阅读下面的文章了知道更多入口地址。

29

2025.12.24

yandex外贸入口合集
yandex外贸入口合集

本专题汇总了yandex外贸入口地址,阅读下面的文章了解更多内容。

58

2025.12.24

添加脚注通用方法
添加脚注通用方法

本专题整合了添加脚注方法合集,阅读专题下面的文章了解更多内容。

1

2025.12.24

重启电脑教程汇总
重启电脑教程汇总

本专题整合了重启电脑操作教程,阅读下面的文章了解更多详细教程。

3

2025.12.24

纸张尺寸汇总
纸张尺寸汇总

本专题整合了纸张尺寸相关内容,阅读专题下面的文章了解更多内容。

5

2025.12.24

Java Spring Boot 微服务实战
Java Spring Boot 微服务实战

本专题深入讲解 Java Spring Boot 在微服务架构中的应用,内容涵盖服务注册与发现、REST API开发、配置中心、负载均衡、熔断与限流、日志与监控。通过实际项目案例(如电商订单系统),帮助开发者掌握 从单体应用迁移到高可用微服务系统的完整流程与实战能力。

1

2025.12.24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP函数之array数组函数视频讲解
PHP函数之array数组函数视频讲解

共76课时 | 25.7万人学习

AngularJS教程
AngularJS教程

共24课时 | 2万人学习

CSS3实现按钮特效视频教程
CSS3实现按钮特效视频教程

共15课时 | 3.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号