将数组转换为关联对象

时间:2021-06-01 08:22:12

标签: php laravel

我想转换:

输入:

array:3 [▼
  0 => {#476 ▼
    "click": 2412
    "ctr": 121
    "id": 12
    "trueview": 4124
    "view": 1452503
  }
  1 => {#478 ▼
    "click": 2222
    "ctr": 2222
    "id": 21
    "trueview": 2222
    "view": 2222
  }
  2 => {#1526 ▼
    "click": 3333
    "ctr": 3333
    "id": 31
    "trueview": 3333
    "view": 3333
  }
]

输出:

{
  "12" : {
           "click": 2222,
           "trueview": 3333,
           "view": 3333,
           "ctr": 3333
         },
  "21" : {
           "click": 2222,
           "trueview": 3333,
           "view": 3333,
           "ctr": 3333
         },
  "31" : {
           "click": 2222,
           "trueview": 3333,
           "view": 3333,
           "ctr": 3333
         }
}

2 个答案:

答案 0 :(得分:0)

循环初始数组并使用 id 作为索引创建一个新数组。在代码中:

$new_array = [];
foreach ($array as $key => $vals) {
    $id = $vals['id'];
    unset($vals['id']);
    $new_array[$id] = $vals;
}

var_dump($new_array);

答案 1 :(得分:0)

试试这个...你应该得到一些东西...但你可能需要根据你的需要做一些改变

<?php
       

$arrays = array(
   0 =>  array(       
       "click" => 2412,
       "view" => 12456
       ),
   1=> array(
            "click"=> 2222,
            "ctr"=> 2222,
            "id"=> 21,
            "trueview"=> 2222,
            "view"=> 2222,
        )
);

echo "{\n";
foreach ($arrays as $index => $array)
{
    echo '"'.strval($index).'"'.":  {\n";
        
    foreach ($array as $key => $value)
    {
        echo '"'.($key).'":'.$value.",\n";
    }
    echo "\n\t},\n";
  
}

  echo "\n }";
相关问题