当前位置:首页 » 编程语言 » php组合数组

php组合数组

发布时间: 2022-09-11 19:24:04

A. php合并一个或多个数组

array_merge
(PHP 4, PHP 5, PHP 7)
array_merge — 合并一个或多个数组
1.说明
array_merge ([ array $... ] ) : array
将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将 不会 覆盖原来的值,而是附加到后面。
如果输入的数组存在以数字作为索引的内容,则这项内容的键名会以连续方式重新索引。
2.参数
...
要合并的数组。
返回值
返回合并后的结果数组。如果参数为空,则返回空 array。
更新日志
版本 说明
7.4.0 允许不带参数调用,之前版本至少需要一个参数。
3.范例
示例 #1 array_merge() 示例
"red", 2, 4);
$array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4);
$result = array_merge($array1, $array2);
print_r($result);
?>

B. php若干数组组合算法

$a=array ( '黑色','白色' );
$b=array ( '36码' ,'37码' );
$c=array ( '男款' ,'女款' );

$d = array();
foreach ($a as $i => $_a ){
foreach ($b as $ii => $_b ){
foreach ($c as $iii => $_c ){
$d[] = $_a.$_b.$_c;
}
}
}
print_r($d);

Array
(
[0] => 黑色36码男款
[1] => 黑色36码女款
[2] => 黑色37码男款
[3] => 黑色37码女款
[4] => 白色36码男款
[5] => 白色36码女款
[6] => 白色37码男款
[7] => 白色37码女款
)

C. PHP两个一维数组合并为二维数组

<?php
$arr1=array('足球','篮球');
$arr2=array('冰棒','雪糕');
//方法一:直接组合
$B=array($arr1,$arr2);
//方法二:键值组合
$C=array();
$C['运动项目']=$arr1;
$C['吃的']=$arr2;

//输出看看
echo"<pre>";
print_r($B);
print_r($C);

//附加:当然,这两个数组还可以在组合
$fujia=array();
$fujia['B方法']=$B;
$fujia['C方法']=$C;
echo"<hr/>";
print_r($fujia);
?>

D. PHP 递归处理数组,并组合成新的数组

/**
*多维数组递归合并
*/
functionmultimerge(){
$arrs=func_get_args();
$merged=array();
while($arrs){
$array=array_shift($arrs);
if(!$array){
continue;
}
foreach($arrayas$key=>$value){
if(is_string($key)){
if(is_array($value)&&array_key_exists($key,$merged)&&is_array($merged[$key])){
$merged[$key]=call_user_func(__FUNCTION__,$merged[$key],$value);
}else{
$merged[$key]=$value;
}
}else{
$merged[]=$value;
}
}
}
return$merged;
}

$a1=array('user'=>array('name'=>'tony','score'=>23));
$a2=array('user'=>array('name'=>'tony','score'=>255),'name'=>'tom');
$a3=array('user'=>array('name'=>'tony','score'=>288,'test'=>'abc'),'name'=>'jack');
$result=multimerge($a1,$a2,$a3);
var_mp($result);

E. php 数组组合问题

$array_old=array(
array(
'name'=>'param1',
'isNull'=>1,
'type'=>'int',
'value'=>1,
),
array(
'name'=>'param2',
'isNull'=>0,
'type'=>'string',
'value'=>'test',
),
);

F. php 两个数组,组合到一起

就是用array_merg来组合数组

$arr1=Array("Price" => 100,"Count" => 2);
$arr2=Array("Price" => 68,"Count" => 1);
$arr3=Array("ImageUrl" => "http://www..com/uploads/r/roynyj1423816159/3/4/d/a/thumb_54e05b04e4e1c.jpg","ItemName" => "蓝玛瑙","ItemDescription" =>"");
$arr4=Array("ImageUrl" => "http://www..com/uploads/r/roynyj1423816159/d/1/a/f/thumb_54e0609cb71b0.jpg","ItemName" => "可调大小朱砂双鱼手串","ItemDescription" =>"");
$data1=array_merge($arr1,$arr3);
$data2=array_merge($arr2,$arr4);
$datas=Array("7"=>$data1,"11"=>$data2);
print_r($datas);

G. PHP 多个数组的排列组合

$a = array(1,2,3,4,5,6,7);
$b = array(1,2,3);
$c = array(1,2,3,4,5,6,7,8,9,10);
$d = array($a,$b,$c);
//计算每一个数组的长度
$len = 1;
$arrLen = count($d); //需要排列数组有多少个
$recIndex = null; //记录当前该取的位置
//foreach 计数
$count_3 = 0;
foreach ($d as $key => $value) {
$lenRec[$count_3] = count($value);
$len = $lenRec[$count_3]*$len;
$recIndex[] = 0;//第一次全部取第0个
$count_3++;
}
//算出% 的值
$count = 1;
foreach ($lenRec as $key => $value) {
$moloVal = 1;

if($arrLen == $count){
$molo[] = count($d[$arrLen-1]); //等于最后一个的长度
}else{
$count_1 = 1;
foreach ($lenRec as $index => $item) {
$count_1 > $count && $moloVal = $moloVal*$item;
$count_1 ++;
}
$molo[] = $moloVal;
}
$count ++;//为了防止$d key是有值的 不是自然序列 需要计数
}
$i = 1;
while ( $i <= $len) {
$html = '';
$count_2 = 0;// 取模
$temp = '';
foreach ($d as $value) {
$html .= $value[$recIndex[$count_2]%$lenRec[$count_2]].",";
$count_2 ++;
}
echo $html."<br>";
foreach ($molo as $key => $value) {
if($i%$value == 0 && $key < $arrLen - 1 ){
$recIndex[$key] = $recIndex[$key] +1;
}
if($key == $arrLen - 1){
if($i%$value == 0){
$recIndex[$key] = 0;
}else{
$recIndex[$key] = $recIndex[$key] +1;
}
}
}
$i ++;
//改变获取的位置
}

H. PHP如何重新组合生成需要的数组

你分析一下原数组,你看键值0 就不需要改了吧。这样你就直接赋值给新数组$new
然后循环原数组
foreach($old as $key=>$val){
//具体的你自己去写正则把,我只是写个大概,把匹配到的剩余 $match[1] 赋值给 $new

if( preg_match(("/^(Content-Type:)/",$val,$match) ){
$new['Content-Type'] = $match[1];

}elseif(preg_match('/^(Server:)/',$val)){
$new['Server'] = $match[1];
}elseif(.....){
依次类推
}

}
var_mp($new);

I. PHP中如何列出一个数组的所有规定组合

嵌套循环,代码如下:

$arr=array('0'=>array(8,9),'1'=>array(5),'2'=>array(1,2));
$arr2=array();
foreach($arr[0]as$v1){
foreach($arr[1]as$v2){
foreach($arr[2]as$v3){
$arr2[]=$v1.$v2.$v3;
}
}
}
print_r($arr2);
热点内容
ps3游戏下载解压 发布:2025-01-12 15:55:46 浏览:595
视频点播服务器搭建局域网 发布:2025-01-12 15:46:44 浏览:87
unit长安豪华版有哪些配置 发布:2025-01-12 15:45:05 浏览:84
数据库表的分区 发布:2025-01-12 15:39:29 浏览:368
u点家庭服务器网关设置有什么用 发布:2025-01-12 15:33:15 浏览:152
王者归来java 发布:2025-01-12 15:27:13 浏览:67
安卓手机为什么卡又发热 发布:2025-01-12 15:23:18 浏览:570
如何验证root密码是否正确 发布:2025-01-12 15:23:15 浏览:591
socketftp服务器端 发布:2025-01-12 15:19:55 浏览:235
胸椎腰椎压缩性骨折 发布:2025-01-12 15:18:30 浏览:475