我有以下php代码从mysql数据库获取序列化数组,然后反序列化它。这工作正常。以下代码:
$row=mysql_fetch_array($result);
$mydata=$row[0];
$unser=unserialize($mydata);
echo "$mydata<br>";
print_r($unser);
echo "<br>";
echo $unser[1901];
输出是这样的:
a:2:{i:2070;s:4:"0.00";i:1901;s:4:"1.00";}
Array ( [2070] => 0.00 [1901] => 1.00 )
1.00
到目前为止,这么好。现在,我正在尝试编写代码,以便检查数组密钥1901是否存在。为此,我尝试了这个:
$search_array = $unser;
if (array_key_exists('1901', $search_array)) {
echo "The key 1901 is in the array";
}
但是返回错误。我做错了什么?
答案 0 :(得分:4)
使用以下代码:
$mydata= 'a:2:{i:2070;s:4:"0.00";i:1901;s:4:"1.00";}';
$unser=unserialize($mydata);
echo "$mydata<br>";
print_r($unser);
echo "<br>";
echo $unser['1901'];
$search_array = $unser;
if (array_key_exists('1901', $search_array)) {
echo "<br />The key 1901 is in the array";
}
它将正常工作:
a:2:{i:2070;s:4:"0.00";i:1901;s:4:"1.00";}
Array ( [2070] => 0.00 [1901] => 1.00 )
1.00
The key 1901 is in the array
检查您发布的代码行后是否有更多代码。我认为是另一段令你困惑的代码。
答案 1 :(得分:-1)
echo $unser[1901];
应该是
echo $unser['1901'];
你也可以
if(isset($unser['1901'])) { }
而不是array_key_exists()