PHP multidimensional array decomposition

2019-01-29 14:17发布

I have a PHP Sql results, table looks like:

It appears as:

[id]|test1|data|voice
1|0|0|-1
2|0|1|0
3|0|-2|-1

Print_r of the array looks like:


Array
(
[2] => Array
    (
        [0] => Array
            (
                [test1] => 0
                [data] => 0
                [mobile] => -1
            )

    )

[3] => Array
    (
        [0] => Array
            (
                [test1] => 0
                [data] => 1
                [voice] => 0
            )

    )

[4] => Array
    (
        [0] => Array
            (
                [test1] => 0
                [data] => -2
                [voice] => -1
            )

    )

I want to manipulate the array such that my array looks like:

Array (
    [0] => Array
    ( 
            [name] =>  test1
            [val] => array(0 , 0, 0) 
    )
    [1] => Array 
    (
            [name] => data
            [val] => array(0, 1, -2)
    )
    [2] => Array
    (
            [name] => voice
            [val] => array(-1,0, 0)
    )

标签: php pivot
2条回答
混吃等死
2楼-- · 2019-01-29 14:28

use this and do modifications if neded

SELECT *
FROM `table_name`
GROUP BY `test1` , `data` , `voice`
LIMIT 0 , 30
查看更多
Evening l夕情丶
3楼-- · 2019-01-29 14:40

Considering your source array name as $Arr , Try out below code

foreach($Arr as $valArr)
{
    $index = 0;
    foreach($valArr[0] as $k => $v)
    {
        $newArr[$index]["name"] = $k;
        $newArr[$index]["val"][ ] = $v;
        $index++;
    }
}

echo "<pre>"; print_r($newArr);
查看更多
登录 后发表回答