【问题标题】:Creating a multi array from query从查询创建多数组
【发布时间】:2016-04-15 00:29:15
【问题描述】:

我正在使用 Charts4Php 和 laravel 5.1,但我需要将查询中的多数组结果返回到数据库

数组示例

array(
  array(
   array('Charts',6),
   array('Apple',8),
   array('Hone',14),
   array('Gas',20))); 

数组返回

array:1 [
  0 => array:4 [
    0 => array:2 [
      0 => "Charts"
      1 => 6
    ]
    1 => array:2 [
      0 => "Apple"
      1 => 8
    ]
    2 => array:2 [
      0 => "Hone"
      1 => 14
    ]
    3 => array:2 [
      0 => "Gas"
      1 => 20
    ]
  ]
]

查询返回的数组

    array:1 [▼
    0 => {#193 ▼
    +"Apple": 55
    +"Car": 22
    +"House": 66
    +"Gas": 5
  }
]

控制器

$p = new \chartphp();
$DB = DB::Table('users')->select('Apple','Car','House','Gas')->where('id', '=', '2')->get();
 $p->data = $DB;
 $p->chart_type = "pie";
$p->title = "";
  $out = $p->render('c2');
    return('pages.test')->with('out',$out);

视图只包含一行

{!!$out!!}

【问题讨论】:

    标签: php mysql for-loop multidimensional-array laravel-5


    【解决方案1】:

    考虑循环查询结果以将其转换为所需的多维结构。

    例子

    $fields = [];
    foreach($DB as $ind => $val) {
      $fields[] =  [$ind, $val]
    }
    $data = [ $fields ]; //Finally wrap them inside an array
    

    【讨论】:

    • 我不得不再次文盲
    【解决方案2】:

    在 Mwaa Joseph 的帮助下,我发现我必须识字两次而不是一次,谢谢您的帮助

    foreach($DB as $ind => $val) {
                    foreach($val as $x => $y){
                        $fields[] =  [$x, $y];
                    }
    
    }
    

    返回的数组

    array:1 [▼
      0 => array:4 [▼
        0 => array:2 [▼
          0 => "Apple"
          1 => 55
        ]
        1 => array:2 [▼
          0 => "Car"
          1 => 22
        ]
        2 => array:2 [▼
          0 => "House"
          1 => 66
        ]
        3 => array:2 [▼
          0 => "Gas"
          1 => 5
        ]
      ]
    ]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-03
      • 1970-01-01
      • 1970-01-01
      • 2016-12-07
      • 2013-09-02
      • 2011-03-25
      • 1970-01-01
      相关资源
      最近更新 更多