>백엔드 개발 >PHP 튜토리얼 >请问这是什么格式的数据?

请问这是什么格式的数据?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB원래의
2016-06-23 13:54:511012검색

a:4:{i:0;i:392;i:1;i:393;i:2;i:394;i:3;i:395;}
这是从数据库读出来的 。判断这个is_array 返回1 
说是个数组类型。这怎么才能转换成string或者给JS用呢。。谢谢


回复讨论(解决方案)

这是 php 序列化(serialize)数据
用 is_array 判断不可能返回 1
除非你做了反序列化(unserialize)

$a = unserialize('a:4:{i:0;i:392;i:1;i:393;i:2;i:394;i:3;i:395;}');echo '[' . join(',', $a) . ']';//或echo json_encode($a);
[392,393,394,395]
就可以给 js 用了

1、序列化的数据先使用unserialize反序列化,得到原始的数组;
2、如果要将PHP里的数组传给JS用,那得转成JSON,然后JS访问JSON数据

2L解答正确。不过貌似这个只能赋值给session 
我直接unserialize报错。

附代码。谢谢

if($action == 'getproductsname'){		$works_id = isset($_GET["works_id"])?intval($_GET["works_id"]):0;	$tmp = $db->selectAssoc('*','works','works_id',$works_id);	if($tmp == false){		exit('读取数据库失败!');	}	$info = $tmp[0];unset($tmp);	ds('worksid');	rs('worksid',unserialize($info['works_pics']));	$imageid = gs('worksid');	if(is_array($imageid))$tmp = implode(',',$imageid); //将array 转换成string		if(isset($tmp)){		$sql = "select * from pics where id in(".$tmp.") order by id asc";		$info = $db->qa($sql);		if($info != false){			$ct = count($info);			for($i=0;$i<$ct;$i++){				//echo '<img  src="'.BASE_DIR.'/'.$offlineindex.'/'.$info[$i]['id'].'.jpg" / alt="请问这是什么格式的数据?" ><span   style="max-width:90%" onclick="delimages('.$info[$i]['id'].');">删除</span>';				echo '<option value="'.$info[$i]['id'].'" >'.$info[$i]['title'].'</option>';			}		}else{echo '请上传图片!';}	}		}

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.