Codeigniter - 如何将 foreach 值传递到数组内部

Codeigniter - how to passing foreach value to inside of array

我使用 CodeIgniter 3 和 http://biostall.com/codeigniter-google-maps-v3-api-library/ 的库。 当我从数据库中取出数据并将其放入多边形点时,我遇到了一些错误。

Severity: Warning Message: trim() expects parameter 1 to be string, array given Filename: libraries/Googlemaps.php Line Number: 2179

我的控制器功能:

public function testing()
    {
    $config['center'] = '-8.1768084, 113.6559507';
    $config['zoom'] = 'auto';
    $this->googlemaps->initialize($config);

    $kecamatan = $this->Peta_model->get_kecamatan();
    foreach ($kecamatan as $k) {
        $kcmt = $k->name;
        $coor = $this->Peta_model->get_coor_by_kcmt($kcmt);
        if ($coor) {
            $polygon = array(
              'points' => array() ,
              'strokeColor' => '#000099' ,
              'fillColor' => '#000099' ,
            );
            foreach ($coor as $c) {
                $polygon ['points'][] = array("'".$c->latitude.",".$c->longitude."'");
            }
            $this->googlemaps->add_polygon($polygon);
        }
    }


    $user = $this->ion_auth->user()->row();
    $user_level = $this->ion_auth->get_users_groups($user->id)->row();
    $data = array(
        'user'       => $user ,
        'user_level' => $user_level ,
        'title'      => 'Peta' , 
        'content'    => 'peta/v_peta' ,
        'map'        => $this->googlemaps->create_map(), 
    );

    $this->load->view('dashboard/layout', $data);
}

通常添加的多边形是:

$polygon = array(
  'points' => array('37.425, -122.1321',
         '37.4422, -122.1622',
         '37.4412, -122.1322',
         '37.425, -122.1021') ,
  'strokeColor' => '#000099' ,
  'fillColor' => '#000099' ,
);
$this->googlemaps->add_polygon($polygon);

我该如何解决?

您正在 $polygon ['points'][] 中存储一个数组。

我认为你应该存储一个字符串。喜欢..

$polygon ['points'][] = "'".$c->latitude.",".$c->longitude."'";

已解决!仅更改

$polygon ['points'][] = array("'".$c->latitude.",".$c->longitude."'");

$polygon ['points'][] = $c->latitude.','.$c->longitude;

谢谢@Muhammad Suhaib