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

php数组降维

发布时间: 2022-08-19 07:51:02

php一维数组转换成二维数组

你是说a[0]的值为1 2 3 4,这个值是什么类型,空格分隔的字符串吗,那这样转换:
foreach ($a as $k=>$v) $b[$k]=explode(' ',$v);

⑵ php数组去除重复的值

之前写了一篇关于数组去重的文章,但是仅限于一维数组。下面的函数可以用于二维数组:
//二维数组去掉重复值
function array_unique_fb($array2D){foreach ($array2D as $v){$v = join(",",$v); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串
$temp[] = $v;}
$temp = array_unique($temp); //去掉重复的字符串,也就是重复的一维数组
foreach ($temp as $k => $v){$temp[$k] = explode(",",$v); //再将拆开的数组重新组装}return $temp;}
如果你想保留数组的键值,可以用下面的函数:
//二维数组去掉重复值 并保留键值
function array_unique_fb($array2D){foreach ($array2D as $k=>$v){$v = join(",",$v); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串
$temp[$k] = $v;}$temp = array_unique($temp); //去掉重复的字符串,也就是重复的一维数组
foreach ($temp as $k => $v){$array=explode(",",$v); //再将拆开的数组重新组装
$temp2[$k]["id"] =$array[0];
$temp2[$k]["litpic"] =$array[1];
$temp2[$k]["title"] =$array[2];
$temp2[$k]["address"] =$array[3];
$temp2[$k]["starttime"] =$array[4];
$temp2[$k]["endtime"] =$array[5];
$temp2[$k]["classid"] =$array[6];
大概就这样啦。
以上回答你满意么?

⑶ php 三维数组转成二维数组

<?php
$k=0;
foreach($helloas$key=>$val){
foreach($val['data']as$key2=>$val2){
$newhello[$k]['uid']=$val['uid'];
$newhello[$k]['title']=$val2['title'];
$newhello[$k]['content']=$val2['content'];
$k++;
}
}
print_r($newhello);
?>

⑷ php一维数组变二维数组

<?php

$a=array('a0'=>'0001','b0'=>'2','a1'=>'0003','b1'=>'6');
$array=change($a,1);
print_r($array);


functionchange($array,$num){
$b=array();
for($i=0;$i<=$num;$i++){
$array=array();
$array['id']=empty($a['a'.$i])?"":$a['a'.$i];
$array['num']=empty($a['b'.$i])?"":$a['b'.$i];
$b[]=$array;
}
return$b;
}

?>

基本实现了你所要的功能

⑸ PHP如何去除重复数组,保留不一样的值,而不是一个。

二维数组的去重一般需要先降维,再去重,再重组

你可以参考下面的方法

functionunique_arr($array2D,$stkeep=false,$ndformat=true)
{
//判断是否保留一级数组键(一级数组键可以为非数字)
if($stkeep)$stArr=array_keys($array2D);

//判断是否保留二级数组键(所有二级数组键必须相同)
if($ndformat)$ndArr=array_keys(end($array2D));

//降维,也可以用implode,将一维数组转换为用逗号连接的字符串
foreach($array2Das$v){
$v=join(",",$v);
$temp[]=$v;
}

//去掉重复的字符串,也就是重复的一维数组
$temp=array_unique($temp);

//再将拆开的数组重新组装
foreach($tempas$k=>$v)
{
if($stkeep)$k=$stArr[$k];
if($ndformat)
{
$tempArr=explode(",",$v);
foreach($tempArras$ndkey=>$ndval)$output[$k][$ndArr[$ndkey]]=$ndval;
}
else$output[$k]=explode(",",$v);
}

return$output;
}

⑹ PHP 如何将一个一维数组转成二维数组

例如:
用php递归将二维数组转换成一维数组:
函数原形:array array_multi2single(array)
实现功能:将多维数组的数值存放到一维数组中,不保存Key。
<?php
function array_multi2single($array){
static $result_array=array();
foreach($array as $value){
if(is_array($value)){
array_multi2single($value);
}
else
$result_array[]=$value;
}
return $result_array;
}
$array=array("1"=>array("A","B","C",array("D","E")),"2"=>array("F","G","H","I"));
$array=array_multi2single($array);
foreach($array as $value){
echo "<h5>$value</h5>";
echo "<br>";
}
?>
可用于多维数组.

⑺ PHP foreach把二维数组遍历成为一维数组(就是怎么样降维)

如果重复怎么处理?是否需要做区分?


如果忽略重复和反向还原,那么直接用array_merge即可

$new_arr = array_merge($arr['1'],$arr[2]);


foreach:

foreach($arras$v=>$k){
foreach($vas$val=>$key){
$new_arr[$key]=$val;
}
}

⑻ php二维数组去重

方法一:

//二维数组去掉重复值function array_unique_fb($array2D){ foreach ($array2D as $v){ $v=join(',',$v); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串 $temp[]=$v; } $temp=array_unique($temp); //去掉重复的字符串,也就是重复的一维数组 foreach ($temp as $k => $v){ $temp[$k]=explode(',',$v); //再将拆开的数组重新组装 } return $temp;}

方法二:

//二维数组去掉重复值,并保留键值function array_unique_fb($array2D){ foreach ($array2D as $k=>$v){ $v=join(',',$v); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串 $temp[$k]=$v; } $temp=array_unique($temp); //去掉重复的字符串,也就是重复的一维数组 foreach ($temp as $k => $v){ $array=explode(',',$v); //再将拆开的数组重新组装 //下面的索引根据自己的情况进行修改即可 $temp2[$k]['id'] =$array[0]; $temp2[$k]['title'] =$array[1]; $temp2[$k]['keywords'] =$array[2]; $temp2[$k]['content'] =$array[3]; } return $temp2;}

⑼ PHP一维数组变成二维数组

<?php
$asr =array("2","3","4","5");
$new_array = array_chunk($asr,1); //将原数组按每个一组分成二维数组 $new_array[0][0]=2 $new_array[1][0]=3

for($i=0;$i<4;$i++){ //循环赋值
$new_array[$i][1]= $new_array[$i][0]*2;
echo $new_array[$i][1]." ";
}
?>
看看这样是你想要的不

⑽ php怎么把三维数组转化成一维数组

可以使用递归来进行合并,无论数组的维数有多少,都可以进行合并。

<?php

function array_merge_rec(&$array) { // 参数是使用引用传递的
// 定义一个新的数组
$new_array = array ();
// 遍历当前数组的所有元素
foreach ( $array as $item ) {
if (is_array ( $item )) {
// 如果当前数组元素还是数组的话,就递归调用方法进行合并
array_merge_rec ( $item );
// 将得到的一维数组和当前新数组合并
$new_array = array_merge ( $new_array, $item );
} else {
// 如果当前元素不是数组,就添加元素到新数组中
$new_array [] = $item;
}
}
// 修改引用传递进来的数组参数值
$array = $new_array;
}

// 测试用的数组
$my_array = Array (
0 => Array (
0 => Array (
'name' => '角色组管理'
),
1 => Array (
'name' => '角色管理'
),
2 => Array (
'name' => '模块管理'
)
),
1 => Array (
0 => Array (
'name' => '角色管理'
),
1 => Array (
'name' => '模块管理'
),
2 => Array (
'name' => '问题列表'
)
)
);

// 调用函数合并数组为一维数组
array_merge_rec ( $my_array );
// 打印结果
print_r ( $my_array );

?>

热点内容
ssid哪里输入密码 发布:2025-01-19 16:21:53 浏览:362
云服务器网速慢 发布:2025-01-19 16:20:17 浏览:404
电脑上传监控 发布:2025-01-19 16:13:16 浏览:307
书旗小说怎样离线缓存 发布:2025-01-19 16:12:30 浏览:284
如何给盘符设置密码 发布:2025-01-19 16:11:47 浏览:345
delphi字符加密解密 发布:2025-01-19 16:00:55 浏览:209
为什么安卓不发烫 发布:2025-01-19 15:57:57 浏览:581
oracle存储过程参数游标 发布:2025-01-19 15:57:53 浏览:522
光遇安卓哪个渠道好 发布:2025-01-19 15:41:17 浏览:744
波段的算法 发布:2025-01-19 15:37:00 浏览:424