php 大神看看一個陣列問題
高洛峰
高洛峰 2017-06-08 11:01:38
0
7
851
        [['7','2'],['8','2'],['11','2'],['10','2'],['9','2']]

資料庫存的是這樣的資料 ['7','2'] 7代表產品id 2代表產品購買的數量

現在怎麼 還原成 php 能使用的陣列尼?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回覆(7)
滿天的星座

屬於偷雞取巧的方法:當然,前提是你的數據都是完整的,不會有負數,NULL什麼的

$a = "[['7','2'],['8','2'],['11','2'],['10','2'],['9','2']]";
$result = array();
preg_match_all("/'(\d*)'/", $a, $matches);
for ($i = 0; $i < count($matches[1]); $i += 2){
   $result[(int)$matches[1][$i]] = (int) $matches[1][$i+1];
}

親測成功

大家讲道理

你沒說具體格式,我就先採用下面這種格式了

$data = [['7','2'],['8','2'],['11','2'],['10','2'],['9','2']];
$products = array();
foreach ($data as $tmp) {
    $products[] = array(
        'id' => $tmp[0],
        'total' => $tmp[1]
    );
}
var_dump($products);
淡淡烟草味

謝邀!

你這個就是數組,你直接循環好了:

    $arr     = [['7','2'],['8','2'],['11','2'],['11','2'],['11','2']];
    var_dump($arr[0]);die;
    

這個陣列等同於:

    $arr     = array(
                    array('7','2'),
                    array('8','2'),
                    array('11','2'),
                    array('11','2'),
                    array('11','2'),
                );
     var_dump($arr[0]);die;
phpcn_u1582

你這麼存進去的,再反解回來不就結了麼。

$str = json_encode(array(
    array(7, 2),
    array(8, 2),
));

var_dump(json_decode($str));
迷茫

標準json需要雙引號, 所以只要把單引號轉成雙引號, 再json_decode

$sqldata = "[['7','2'],['8','2'],['11','2'],['10','2'],['9','2']]";
$sqldata = str_replace('\'', '\"', $sqldata );
$data = json_decode($sqldata);
echo $data[0][1]; // >> 2
女神的闺蜜爱上我
$str = "[['7','2'],['8','2'],['11','2'],['10','2'],['9','2']]";
var_dump(eval('return '.$str.';'));

試試

三叔

雷雷

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板