本文目录一览:
- php数组根据某键值,把相同键值的合并最终生成一个新的二维数组
- [php数组合并两个数组(一个数组做键名,另一个做值) **key名字可以重复](#php数组合并两个数组(一个数组做键名,另一个做值) **key名字可以重复)
- [php 把多维数组中,某值相同的项合并,重组数据](#php 把多维数组中,某值相同的项合并,重组数据)
- php中多维数组中,如何将子数组中的同键名的值连接合并
php数组根据某键值,把相同键值的合并最终生成一个新的二维数组
- 新建php文件。
- 创建名为
$a1
的数组并为数组添加元素。 - 创建名为
$a2
的数组并为数组添加元素。 - 创建名为
$a3
的数组并为数组添加元素。 array_diff_assoc()
比较三个数组的键名和键值,并返回差集。- 打印差集。
- 预览效果如图。
php数组合并两个数组(一个数组做键名,另一个做值) **key名字可以重复
php将两个键名和键值的数组元素合并为一个数组 你好,有两个方法可以实现: 一:
$arry_a = array(0, 1, 2);
$arry_b = array('dongsir','董先生','董先生的CSDN博客');
$arry_ab = [];
foreach ($arry_b as $key => $value) {
$arry_ab[$arry_a[$key]] = $value;
}
echo "<pre>";
print_r($arry_ab);
输出:
Array
(
[0] => dongsir
[1] => 董先生
[2] => 董先生的CSDN博客
)
第二个方法: php将两个键名和键值的数组元素合并为一个数组 如果存在相同的键名,则可以这样来处理,我们参照第一个方法修改一下:
$arry_a = array("a", "a", "c");
$arry_b = array('dongsir','董先生','董先生的CSDN博客');
$arry_ab = [];
foreach ($arry_b as $key => $value) {
if (isset($arry_ab[$arry_a[$key]])) {
$arry_ab[$arry_a[$key]] = $arry_ab[$arry_a[$key]] . "," . $value;
} else {
$arry_ab[$arry_a[$key]] = $value;
}
}
echo "<pre>";
print_r($arry_ab);
输出:
Array
(
[a] => dongsir,董先生
[c] => 董先生的CSDN博客
)
php 把多维数组中,某值相同的项合并,重组数据
<?php
$laArray = array(
0 => array("id"=>11,"name"=>"happy","age"=>"20","moeny"=>100),
1 => array("id"=>29,"name"=>"lucy","age"=>"20","moeny"=>100),
2 => array("id"=>34,"name"=>"happy","age"=>"20","moeny"=>235),
3 => array("id"=>42,"name"=>"happy","age"=>"15","moeny"=>100),
4 => array("id"=>51,"name"=>"happy","age"=>"20","moeny"=>600),
5 => array("id"=>61,"name"=>"lucy","age"=>"20","moeny"=>350),
6 => array("id"=>61,"name"=>"lucy","age"=>"23","moeny"=>150),
);
$temArr = $laArray;
$newArr = array();
foreach($laArray as $num => $arr ){
unset($temArr[$num]);
$id = $arr['id'];
foreach($temArr as $tNum => $tArr ){
$n_arr = array();
$tem_moeny = array();
if($arr['name'] == $tArr['name'] && $arr['age'] == $tArr['age']){
$id .= '+'.$tArr['id'];
$n_arr['id'] = $id;
$n_arr['name'] = $arr['name'];
$n_arr['age'] = $arr['age'];
if(is_array($arr['moeny'])){
array_push($n_arr['moeny'], $tArr['moeny']);
}else{
$tem_moeny[] = $arr['moeny'];
$tem_moeny[] = $tArr['moeny'];
}
$tem_moeny[] = $tArr['moeny'];
$n_arr['moeny'] = $tem_moeny;
$newArr[] = $n_arr;
}
}
if($id == $arr['id']){
$newArr[] = $arr;
}
}
print_r($newArr);
?>
php中多维数组中,如何将子数组中的同键名的值连接合并
先把所有的goods_name
字段循环取出来放一个数组中,比如获得的是$arr = array('儿童产品','男士用品')
,那么再循环这个数组:
foreach ($arr as $key => $val) {
foreach ($arrs as $keys => $vals) {
foreach ($val as $vkey => $vval) {
if ($vval['good_name'] == $val) {
$arr[$vval['good_name']][] = $vval;
}
}
}
}
思路给你了,具体的自己参考改改呗。