这是 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.   

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

  2.   

    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" /><span style="cursor:pointer;" onclick="delimages('.$info[$i]['id'].');">删除</span>';
    echo '<option value="'.$info[$i]['id'].'" >'.$info[$i]['title'].'</option>';
    }
    }else{echo '请上传图片!';}
    }

    }