我有这个变量$csv = '3,6,7,8';
,我需要转换为$csv_array = [3,6,7,8];
如果我像$new_array=explode(",",$csv);
一样爆炸csv,它就不会给我想要的数组。
这是一个正在运行的示例http://3v4l.org/kYC0g
代码
$csv = '3,6,7,8';
$new_csv = '['.$csv.']';
if(is_array($new_csv)){
echo 'true';
}
else{
echo 'false';
//this is false
}
echo '<br/>';
$new_array=explode(",",$csv);
print_r($new_array);
//not what i am looking for
echo '<br/>';
print_r($new_csv);
echo '<br/>';
echo $new_csv;
答案 0 :(得分:1)
如同堆垛机所述
RichardBernards - 两种类型&#39;数组在PHP中完全相同。如果您正在寻找JSON
使用JSON来实现您所需要的一个示例:
编码:
$csv = '3,6,7,8';
$array = explode(",", $csv);
$json = json_encode($array);
echo $json;
要解码 $csv
进入您提供的正常数组:
$decoded = json_decode($json, true);
var_dump($decoded);
然后将其恢复为原始格式:
$csv = implode(',', $decoded);
有关详细信息,请参阅json_encode(),另请参阅json_decode()
请记住,JSON实际上是一个字符串,并且在使用上面提到的json_decode()
函数解码之前,它在PHP中是不兼容的。话虽如此,在上面的示例中用true
替换false
会创建一个对象数组,而多维数组则需要以不同方式引用它们,例如$array->result
。
值得注意的是PHP中预定义CSV functions的美丽
答案 1 :(得分:0)
将[
和]
添加到字符串不会使其成为PHP数组。
$csv = '3,6,7,8';
var_dump(explode(',', $csv));
array(4) {
[0]=>
string(1) "3"
[1]=>
string(1) "6"
[2]=>
string(1) "7"
[3]=>
string(1) "8"
}
这等于PHP数组的["3", "6", "7", "8"]
。
要从中获取JSON数组,请使用json_encode(explode(',', $csv))
。或者只是$jsonArray = "[{$csv}]"
如果你需要JSON数组(不是PHP数组,因为它将是简单的字符串)。