Php 如何改进此代码?(内爆/爆炸/取消序列化)

Php 如何改进此代码?(内爆/爆炸/取消序列化),php,Php,我不满意我尽可能用最好的方法来做这件事。我正在从数据库列位置获取序列化代码。我假设我必须对序列化数据进行内爆,然后将其分解,因为当我只使用内爆时,我无法访问县中的条目,所以我使用了内爆。我肯定有更好的办法 $adid = $_GET['id']; $query = "SELECT * FROM ad WHERE id = '$adid'"; $data = mysqli_query($dbc, $query); $ad = mysqli_fetch_array($data); //ret

我不满意我尽可能用最好的方法来做这件事。我正在从数据库列位置获取序列化代码。我假设我必须对序列化数据进行内爆,然后将其分解,因为当我只使用内爆时,我无法访问县中的条目,所以我使用了内爆。我肯定有更好的办法

$adid = $_GET['id'];
$query = "SELECT * FROM ad WHERE id = '$adid'";
$data = mysqli_query($dbc, $query);
$ad = mysqli_fetch_array($data);



 //retrieve serialized data containing county id's
    $counties = explode(" ", implode(" ", unserialize($ad['location'])));

for ($i = 0; $i <= count($counties); $i++) {
echo getCounty($counties[$i]); //getCounty: enter county id and return county name
}


FYI: $ad['location'] = a:2:{i:0;s:1:"2";i:1;s:2:"20";}

不要使用内爆,当你有一个序列化字符串时,unserialize只起作用。

unserialize应该返回一个数组。为什么要先爆炸,然后爆炸?

看看[foreach]——不要爆炸/爆炸同一个东西。。。。同时,描述数据有助于理解问题。