使用以下格式在php中创建一个数组

时间:2017-11-07 05:28:01

标签: php arrays foreach

我有一个这种格式的数组

Array
(
    [0] => stdClass Object
        (
            [page_id] => 132
            [link] => Savings
            [count] => 5
        )

    [1] => stdClass Object
        (
            [page_id] => 172
            [link] => Coverage
            [count] => 5
        )    



)

我希望将其转换为以下格式

Array
(
    [Savings] => Array
        (
            [132] => 3
            [172] => 5
        )

    [Coverage] => Array
        (
            [132] => 9
            [172] => 9
        )

)

我尝试了以下代码并获得以下格式的结果。

foreach($result_link as $data) {                

        $page_array[$data->link][] = array( $data->page_id => $data->count );        
    }

    print_r($page_array);   

请帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

如果我从你所提供的内容中得到你所拥有的......这可能有所帮助。

set.seed(24)
dta = data.table(i=1:4, x=rnorm(4))
dts = data.table(i=rep(1:3, each=3), z=runif(9))

结果是

<?php
$test_array = array(
        (object)array('page_id'=>'132','link'=>'Savings','count'=>5),
        (object)array('page_id'=>'133','link'=>'Savings','count'=>6),
        (object)array('page_id'=>'172','link'=>'Coverage','count'=>7),
        (object)array('page_id'=>'173','link'=>'Coverage','count'=>8),
        );

var_dump($test_array);

$new_array = array();
// Create the new array
foreach($test_array as $object){
    $new_array[$object->link][$object->page_id] = $object->count;
}


var_dump($new_array);

注意:仅当您的page_id对每个链接都是唯一的时才有效。

答案 1 :(得分:0)

这是解决方案

知道你是否有任何疑问

$tmp = [];
foreach($result_link as $data){
  $tmp[$data->link][$data->page_id] = $data->count;
}