需要在php中以特定格式显示数组

时间:2014-10-21 17:05:09

标签: php arrays formatting

将'p_data'值捕获到键/对中并以表格形式返回

我尝试以表格形式显示数组,请帮助我。

$diskspace = array (
    'S' => 
        array ('DISK-FREE' => 
                array (
                'name' => 'S',
                'desc' => 'FREE',
                'p_data' => '\'C:\\ %\'=19%;99;95 \'C:\\\'=17B;3;1073741824;0;21476171776 \'D:\\ %\'=63%;99;99 \'D:\\\'=80B;3;1073741824;0;214753800192 \'E:\\ %\'=91%;99;98 \'E:\\\'=58B;3;1073741824;0;64420311040',),
                ),              
     'T' => 
        array ('DISK-FREE' => 
                array ('name' => 'T',
                'desc' => 'FREE',
                'p_data' => '\'C:\\ %\'=11%;99;95 \'C:\\\'=15B;3;1073741824;0;21476171776 \'D:\\ %\'=18%;99;99 \'D:\\\'=62B;3;1073741824;0;214753800192',),
                ),
    'P' => 
        array ('DISK-USED' => 
                array ('name' => 'P',
                'desc' => 'FREE',
                'p_data' => '\'G:\\ %\'=19%;99;95 \'G:\\\'=92B;3;1073741824;0;21476171776',),
                ),
    );

HTML输出

name, diskname, disk-size, disk-percentage

S,    C:\,      17B,        19%
S,    D:\,      80B,        63%
S,    E:\,      58B,        91%
T,    C:\,      15B,        11%
T,    D:\,      62B,        18%
P,    G:\,      92B,        19%

2 个答案:

答案 0 :(得分:0)

你没有指定你想把特定属性作为值放入什么,我不愿意猜测它,所以我假设你有一个函数处理传递的p_data并返回你需要的数组。 / p>

function handlePValue($p_value) {
    //your code here to return the desired value
}

$p_dataValues = array();

foreach ($diskspace as $element) {
    $p_dataValues[] = handlePValue($element["p_data"]);
}

答案 1 :(得分:0)

使用此代码提取所有xxB和xx%数据并尝试显示它们drom数组,请确保为S,T,...或数组中的其他数据尝试此操作

function Disk2Array($Name , $array) {
    return $array[$Name]['DISK-FREE']['p_data'];
}

$precent = '/[0-9][0-9]\%/';
$size = '/[0-9][0-9][B]/';

preg_match_all($size , Disk2Array('S' , $diskspace) , $match);
print_r($match);

preg_match_all($precent , Disk2Array('S' , $diskspace) , $match);
print_r($match);