PHP 数组重组

Array
(
[1] => 美妆护肤
[2] => 营养保健
[1.1] => 美妆保养
[1.2] => 美容工具
[1.3] => 护肤保养
[1.4] => 美容化妆
[1.5] => 美发护发
[2.1] => 香水须后水
[2.2] => 工具配件
)
有没什么简单的方法能把这个数组转换成多维数组。1.1 1.2 表示 是 1下面的一个数组

很简单,代码如下:

// 假设数组变量$array保存了当前数据
foreach ($array as $key $value) { // 遍历数组
   // 通过正则表达式来判断是否为诸如1.x的下标
   if (!preg_match('/\./', $key)) {
       // 删除数组诸如下标为:1,2,3的数据
       unset($array[$key]);
       continue;
   }
   // 通过.点来分割诸如1.x的下标
   $array2 = explode('.', $key);
   // 使用新数组来存储数据
   $array3[$array2[0]][$key] = $value;
}
// 如果数组下标在排序上有任何颠倒可用ksort()[正序]或krsort()[倒序]来排序
ksort($array3);
// 打印重组的数组效果如下
print_r($array3);

Array
(
   [1] => Array

                    (

                         [1.1] => 美妆保养
                         [1.2] => 美容工具
                         [1.3] => 护肤保养
                         [1.4] => 美容化妆
                         [1.5] => 美发护发

                    )    

    [2] => Array

                    (

                         [2.1] => 香水须后水
                         [2.2] => 工具配件

                    )

)


如果还有任何问题,欢迎追问~

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-13
<?php
$arr = array(
'1' => 美妆护肤,
'2' => 营养保健,
'1.1' => 美妆保养,
'1.2' => 美容工具,
'1.3' => 护肤保养,
'1.4' => 美容化妆,
'1.5' => 美发护发,
'2.1' => 香水须后水,
'2.2' => 工具配件,
);

foreach($arr as $key=>$val){
$tmpKey = explode('.',$key);
if($tmpKey[0] == 1){
$arrs[1][$key] = $val;
}else if($tmpKey[0] ==2){
$arrs[2][$key] = $val;
}

}
///输出的

Array
(
    [1] => Array
        (
            [1] => 美妆护肤
            [1.1] => 美妆保养
            [1.2] => 美容工具
            [1.3] => 护肤保养
            [1.4] => 美容化妆
            [1.5] => 美发护发
        )

    [2] => Array
        (
            [2] => 营养保健
            [2.1] => 香水须后水
            [2.2] => 工具配件
        )

)

第2个回答  2013-06-13
遍历数组 得到键 用.分隔字符串 能得到下标为0和1的的数组 然后判断组合
第3个回答  2013-06-13
用键值取到1.1-2.2 在将取到的数组加到[1]下

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网