Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将阵列转换为关联对象_Php_Laravel - Fatal编程技术网

Php 将阵列转换为关联对象

Php 将阵列转换为关联对象,php,laravel,Php,Laravel,我想转换: 输入: array:3 [▼ 0 => {#476 ▼ "click": 2412 "ctr": 121 "id": 12 "trueview": 4124 "view": 1452503 } 1 => {#478 ▼ "click": 2222 "ctr": 222

我想转换:

输入:

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
         }
}

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

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

var_dump($new_array);

试试这个。。。你应该买点东西。。。但是您可能需要根据您的需要进行一些更改

<?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 }";

使用
collect()
helper方法,然后以json格式编码您可以将数组类型转换为对象
$object=(object)$array已经在这里回答了,谢谢你的建议,我修正了:$new_array=[];foreach($listLogAd as$key=>$vals){$id=$vals->id;unset($vals->id);$new_数组[$id]=$vals;}dd($new_数组);