php一维数组变二维数组

2025-04-06 15:32:46
推荐回答(3个)
回答1:


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


function change($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;
}

?>

基本实现了你所要的功能

回答2:


$arr = [
        '001', 1, '002', 2, '003', 3, '004', 4
    ];
    
$result = [];
$groups = array_chunk($arr, 2);    //按两个数据分组
foreach($groups as $group) {
    $result[] = [
            'id'    => $group[0],
            'num'   => $group[1],
        ];
}

print_r($result);

回答3:

foreach($a  as $key=> $value){//先遍历数组 $a
    if($key%1 ==0){
        $k = (int)($key/2);
        $b[$k] = array(
            'id'=>$value,
            'num'=>$a[$k+1]
        );
    }else{
        continue;
    }
}