Laravel - 如何将数组保存到数据库

Ngu*_*ang 1 php arrays laravel

我有一个这样的数组:

array:4 [?
  "*name1*" => 1
  "*name2*" => 1
  "*name3*" => 2
  "*name4*" => 1
]
Run Code Online (Sandbox Code Playgroud)

我有一个表'id'; 'name'; 'time'

那么如何使用 Laravel 将此数组保存到项目表中?

我已经这样做了,但我知道它不起作用。但是不知道怎么保存

foreach ($data_participant[$i]['attributes']['stats']['itemGrants'] as $key => $value) {
      $itemGrants = new ItemGrant;
      $itemGrants->item = $key;
      $itemGrants->time = $value;

      $itemGrants->save();
}
Run Code Online (Sandbox Code Playgroud)

Ner*_*ere 5

只需简单地使用json_encode函数将其转换arrayJSON字符串。您可以参考此链接以获取更多信息。

例如,将您的数组转换为 JSON 字符串格式:

$array = ["name"=>1,"name2"=>2,"name3"=>3];
$json_array = json_encode($array);
Run Code Online (Sandbox Code Playgroud)

现在,输出将是一个 JSON 字符串:

[{"name":"1"},{"name2":"2"},{"name":"3"}];
Run Code Online (Sandbox Code Playgroud)

您可以将其作为 JSON 格式的字符串保存到数据库中。

如果您希望将数据返回到数组中,则必须进行解码。例如:

$string_json = "[{"name":"1"},{"name2":"2"},{"name":"3"}]";    
$array_output = json_decode($string_json,true);
Run Code Online (Sandbox Code Playgroud)

请注意true传递给的布尔参数json_decode,这很重要,因为没有它json_decode会返回一个数组stdObject而不是关联数组。

现在,您可以取回数组作为输入。