2016-07-25 61 views
-1

我想插入一个数组到我的分贝,但我只是想要的值。如何获取php数组值

现在它给了我这一切

a:1:{i:0;s:38:"ARRAY VALUE";} 

我只是想部分“数组值”要插入到数据库。

谢谢

+3

那不是数组! – gavgrif

+0

'a:1:{i:0; s:38:“ARRAY VALUE”;}'这当然不是数组。 –

+0

这不是一个arrray这个格式是PHP的serialize()函数的结果。你可以使用unserialize()来解码它。 –

回答

0

希望这有助于我假设你想保存ONL y数组数据库中没有键值

//I assume your array is like this 
    $array = array('a'=>20,'b'=>40,'c'=>60); 
    //get array values 
    $newArray = array_values($array); 
    $arrToSave = serialize($newArray); 

and while retrieving from database you need to use 
$array = unserialize('Retrieved field name'); 
+0

的第一行的问题非常感谢! – Dylan12

0

使用unserialize方法序列化数组转换为PHP数组

语法:

$result=unserialize("your serialized array which is in db"); 
+0

我想插入一个数组到数据库...所以我应该序列化,然后反序列化它? – Dylan12

+0

因为如果我没有序列化它,然后我得到一个错误 – Dylan12

+0

是插入到数据库中时,你需要将php数组转换为序列化数组,而提取它是反之亦然 –

0

这是一个回答的答案存储中的数据不会将序列化的问题问题中也存在这个问题。

最好的方法是使用JSON编码像这样

$var = json_encode($array); 
(INSERT TO SQL HERE) 

------------------- 
RETREIVE VALUE 
------------------- 

$var = json_decode($row->mysqli_assoc); 
// NOT the $var will be a object not a array when it gets out... 

这不是存储数据 正道的最值得推荐的方法是让一个新表使用联接...这是更一个简单的快速修复时正在测试的东西enter code here

+0

这是**不** **'json'。它是序列化的数据 - 完全不同的东西。 – Darren

+0

我知道我是最这么回答标题和OP – user3750649

0

一些解决方案:

$arr = unserialize('a:1:{i:0;s:11:"ARRAY VALUE";}'); 
# method 1 (array with values) 
foreach ($arr as $value) { 
    echo "Value is $value"; 
} 
# method 2 (array vith only one value) 
$value = $arr[0]; 
echo "Value is $value";