本文目录一览:
- 1、php数组根据键名怎么合并呢
- 2、php数组根据某键值,把相同键值的合并最终生成一个新的二维数组
- 3、php数组合并两个数组(一个数组做键名,另一个做值) **key名字可以重复
- 4、php将数组键值相同的数组合并数组为一个数组
- 5、php中有关合并某一字段键值相同的数组合并的改进
- 6、php怎么让这两个相同键名的数据放到一起?
php数组根据键名怎么合并呢
//PHP内置函数有个array_merge可以做你想要的功能
//设你的第一个数组为$arr1,第二个数组为$arr2
?php
function my_arraymerge($arr1,$arr2){
for($i=0;$icount($arr1);$i++){ //根据$arr1的长度,一个一个合并
$result = array_merge($arr1[$i],$arr2[$i]);//$result是你想要的合并后的数组
}
}
?
//此函数的缺点是必须你给出的两个数组长度是一样,而且键名都是数字,并且你要合并的顺序也是要一样才可以
php数组根据某键值,把相同键值的合并最终生成一个新的二维数组
1、新建php文件。
2、创建名为$a1的数组并为数组添加元素。
3、创建名为$a2的数组并为数组添加元素。
4、创建名为$a3的数组并为数组添加元素。
5、array_diff_assoc() 比较三个数组的键名和键值,并返回差集。
6、打印差集。
7、预览效果如图。
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将数组键值相同的数组合并数组为一个数组
把'huaka'改成了'huakai'似乎是一个人
?php
$a=array(
array("username"="piaoyudesi","email"="piaoyudesi@163.com","address"="shenzhen","item_id"="10058","item_title"="BPS8"),
array("username"="huakai","email"="huakai@163.com","address"="zhongshan","item_id"="10087","item_title"="BPS9"),
array("username"="huakai","email"="huakai@163.com","address"="zhongshan","item_id"="10047","item_title"="BPS10"),
array("username"="piaoyudesi","email"="piaoyudesi@163.com","address"="shenzhen","item_id"="10042","item_title"="BPS10"),
array("username"="jimowenxin","email"="jimowenxin@163.com","address"="zhuhai","item_id"="10031","item_title"="BPS18")
);
$u=array();
foreach($a as $k=$e){
$name=$e['username'];
if(!isset($u[$name])){
$u[$name]=$e;
unset($u[$name]['item_id'],$u[$name]['item_title']);
}
$u[$name]['goods'][]=array('item_id'=$e['item_id'],'item_title'=$e['item_title']);
}
$a=array_values($u); unset($u);
print_r($a);
=========
Array
(
[0] = Array
(
[username] = piaoyudesi
[email] = piaoyudesi@163.com
[address] = shenzhen
[goods] = Array
(
[0] = Array
(
[item_id] = 10058
[item_title] = BPS8
)
[1] = Array
(
[item_id] = 10042
[item_title] = BPS10
)
)
)
[1] = Array
(
[username] = huakai
[email] = huakai@163.com
[address] = zhongshan
[goods] = Array
(
[0] = Array
(
[item_id] = 10087
[item_title] = BPS9
)
[1] = Array
(
[item_id] = 10047
[item_title] = BPS10
)
)
)
[2] = Array
(
[username] = jimowenxin
[email] = jimowenxin@163.com
[address] = zhuhai
[goods] = Array
(
[0] = Array
(
[item_id] = 10031
[item_title] = BPS18
)
)
)
)
php中有关合并某一字段键值相同的数组合并的改进
下面是实现代码:
/**
**关于参数的说明
**$key键值相同的键名
**$array代表原数组
**$start代表$array[0][$key]
**$newkey代表相同键值相同的键名
**/
function
combine_same_val($array,$start,$key,$newkey){
static
$new;
foreach($array
as
$k=$v){
if($v[$key]==$start){
$new[$v[$newkey]][]
=
$v;
unset($array[$k]);
continue;
}
}
sort($array);
if(count($array)!==0){
combine_same_val($array,$array[0][$key],$key,$newkey);
}
return
$new;
}
php怎么让这两个相同键名的数据放到一起?
1、array array_merge($arr1,$arr2,$arr3);
关联数组,合并后键值不变
索引数组,键值从0开始重新分配
如果下标有重复,会被后面的覆盖
2、案例
echo "br/--------数组合并----------br/";
$arr1 = array("name"=18,2,4,5,3);
$arr2 = array(1,2,4,5,3);
$res = array_merge($arr1,$arr2);
var_dump($res);