【问题标题】:Adding Curly Braces on Array of String PHP在字符串 PHP 数组上添加花括号
【发布时间】:2019-07-13 05:18:25
【问题描述】:

我正在寻找在我的字符串数组上添加花括号 {} 的方法:

print_r(json_encode($temp));

temp = [{"Red":1,"Blue":2,"Green":2}]

我正在使用 :

创建该值
$query_final = (my query);
$query = $this->db->query($query_final)->result_array();
$res = array_count_values(array_column($query, 'status'));
array_push($temp, $res);
print_r(json_encode($temp));

变成:

print_r(json_encode($temp));

temp = [{"Red": "1"},{"Idle":"2"},{"Overload":"2"}]

到目前为止,我已经尝试使用 implode:

$temp = implode(",", $temp);
print_r(json_encode($temp));

但它只是给出错误,有什么方法可以做正确的事情吗?

【问题讨论】:

  • 如何在$temp 中创建值?
  • 你期待一个带有那个 json 的数组吗?
  • 是的先生,我期待一个带有该 json @PHPnoob 的数组
  • 您需要改进您的问题。真正的来源是什么? var_export($temp); 预期的结果是什么?另请阅读How to Ask
  • 请执行var_export(json_decode('[{"Red": "1"},{"Idle":"2"},{"Overload":"2"}]')) 并检查输出。然后你就会知道你需要输入什么来重新创建它。

标签: php arrays json arraylist multidimensional-array


【解决方案1】:

array_count_values() 返回值的列表以及它们出现的次数,因此只需使用 array_push() 会将整个数组添加为 1 项,并为您提供您得到的结果。

相反,您可以一次将一个结果添加到 $temp 数组中,然后再获取结果...

$temp = [];
$res = array_count_values(array_column($query, 'status'));
foreach ( $res as $key=>$item )   {
    $temp[] = [$key => $item];
}
print_r(json_encode($temp));

【讨论】:

    【解决方案2】:

    json_decode($temp, true);解码你的json

    【讨论】:

      【解决方案3】:

      您可以在数组上使用 json_encode 来获取 JSON。像这样:

      $temp = ['Red' => 1,
      'Blue' => 2,
      'Green' => 2
      ];
      
      print_r(json_encode($temp)); // {"Red":1,"Blue":2,"Green":2}
      

      【讨论】:

      • 鉴于您的$temp,您的print_r() 评论结果是错误的。
      猜你喜欢
      • 2023-01-29
      • 2018-11-17
      • 2013-10-01
      • 2013-10-08
      • 1970-01-01
      • 2011-07-17
      • 2012-09-17
      • 2016-01-13
      • 1970-01-01
      相关资源
      最近更新 更多