Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php preg_replace删除阵列周围的[]_Php_Arrays_Preg Replace_Json - Fatal编程技术网

Php preg_replace删除阵列周围的[]

Php preg_replace删除阵列周围的[],php,arrays,preg-replace,json,Php,Arrays,Preg Replace,Json,我当前有一个如下所示的数组: [[{"name":"Shirt","data":[1,1,5,5,1,10000]},{"name":"Skittles","data":[1,9,1,1]}]] 我正在使用: preg_replace('/"([^"]+)"\s*:\s*/', '$1:',json_encode($results)); 要创建如下所示的数组: [{"name":"Shirt","data":[1,1,5,5,1,10000]},{"name"

我当前有一个如下所示的数组:

    [[{"name":"Shirt","data":[1,1,5,5,1,10000]},{"name":"Skittles","data":[1,9,1,1]}]]
我正在使用:

        preg_replace('/"([^"]+)"\s*:\s*/', '$1:',json_encode($results));
要创建如下所示的数组:

    [{"name":"Shirt","data":[1,1,5,5,1,10000]},{"name":"Skittles","data":[1,9,1,1]}]
然而,我似乎无法摆脱额外的括号集

我的模型:

    function get_data()
   {
$this->db->select('ItemName, QuantitySold');
$query = $this->db->get('transactions');

$results = array();

foreach ($query->result_array() as $row)
{
    if(!isset($results[$row['ItemName']]))
        $results[$row['ItemName']] = array('name' => $row['ItemName'], 'data' => array());
    $results[$row['ItemName']]['data'][] = $row['QuantitySold'];
}

//Rekey arrays so they aren't associative
$results = array_values($results);
return $results;
}

我的控制器:

    function test()
{
    $this->load->model('data');
    $series_data[] = $this->data->get_data();
    $data['series_data'] = json_encode($series_data, JSON_NUMERIC_CHECK);
    preg_replace('/"([^"]+)"\s*:\s*/', '$1:',json_encode($series_data));
    $this->load->view('chart', $data);
}

提前谢谢

为什么要使用preg_replace。。。。这只是json编码的数据:

$string = '[[{"name":"Shirt","data":[1,1,5,5,1,10000]},{"name":"Skittles","data":[1,9,1,1]}]]';
var_dump(
    json_encode(
        json_decode($string)[0]
    )
);

这两个字符串显然没有关系对不起,我只是把第二个字符串放进去格式化。我将编辑它以减少混乱。我不断得到一个数组到字符串的转换错误。我会把我所有的代码都放进去以获得更好的帮助你正在运行什么版本的PHP?而不是
preg\u replace('/“([^”]+)”\s*:\s*/'、'$1:'、json\u encode($series\u data));
只需做
json\u encode($series\u data[0]);
…或者更早:使用
$series\u data=$this->data->get\u data()
而不是
$series\u data[]=$this->data->get_data();
哦,我没想到这个。谢谢!非常好用