【问题标题】:How to change a php array如何更改php数组
【发布时间】:2015-04-21 13:27:35
【问题描述】:

我没有答案的简单问题。

如何更改我的数组:

[{"sku":"6"},{"buyers":"7"},{"base":"8"}]

到这里:

[{"sku":"6","buyers":"7","base":"8"}]

我对三个不同的数据库表有三个查询:

$sku = DB::table('mapiranje')->select(DB::raw('count(*) as sku'))
                                        ->where('mate_fk', '=', NULL)
                                        ->get();

        $kupac =    DB::table('mapkupci')->select(DB::raw('count(*) as buyers'))
                                        ->where('kupci_fk', '=', NULL)
                                        ->get();

        $base =     DB::table('dist_base')->select(DB::raw('count(*) as base'))
                                        ->where('base_fk', '=', NULL)
                                        ->get();

现在每个返回:

[{"sku":"6"}]
[{"buyers":"6"}]
[{"base":"6"}]

我已经使用 merge_array 来创建一个数组,但是我得到了:

[{"sku":"6"},{"buyers":"7"},{"base":"8"}]

我想要的是:

[{"sku":"6","buyers":"7", "base":"8"}]

【问题讨论】:

  • 这个问题信息有点少。能分享一下你尝试过的,遇到了什么问题吗?
  • 您是在谈论更改实际字符串还是数组/对象数据结构的这些字符串表示形式?

标签: php laravel query-builder


【解决方案1】:

按照正确的 Laravel 方式重构你的代码:

$result = [
    'sku' => DB::table('mapiranje')->whereNull('mate_fk')->count(),
    'buyers' => DB::table('mapkupci')->whereNull('kupci_fk')->count(),
    'base' => DB::table('dist_base')->whereNull('base_fk')->count()
];

【讨论】:

    【解决方案2】:
    $result = [];
    foreach($input as $oneInputRow) {
      $result[$oneInputRow[0]] = $oneInputRow[1];
    }
    

    【讨论】:

      【解决方案3】:
      $target = array();
      $start = array(array("sku"=>"6"), "buyers"=>"7"), "base"=>"8"));
      foreach($start as $sub){
        foreach($sub as $key => $val){
          $target[$key] = $val;
        }
      }
      

      如果 laravel 提供任何特殊语法,则不 shure,但只要使用 php,我就会像上面那样做。 基本上你循环开始数组。在这种情况下,您遍历每个数组以获取键/值组合并将其放入目标数组中。 对于第二个循环,如果每个辅助数组中只有一个条目,则还有其他方法。

      【讨论】:

        【解决方案4】:

        请尝试以下代码

        $dd = '[{"sku":"6"},{"buyers":"7"},{"base":"8"}]';
        $data = json_decode($dd,true);
        $result = array();
        foreach($data as $key=>$value){
                foreach($value as $key1=>$value1){
                        $result[$key1] = $value1;
                }
        }
        
        echo json_encode($result); //this will print your required format result
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-04-14
          • 2021-09-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-04-26
          相关资源
          最近更新 更多