我想用foreach循环遍历数组来检查一个键名是否存在。如果存在这个键,我想删除包含它的数组项。
我编写了以下代码,在第一个条件中检查了数组项的值,如果数组项的值等于空字符串"",则将该数组项的值设置为"-"(破折号字符)。第一个条件运行良好。
foreach ($domaindata['administrative'] as $key => $value) {
if ($value == "") {
$value = "-";
}
else if ($key == "type") {
unset ($domaindata[$key]);
}
echo "<b>$key: </b>$value<br>";
}
现在我添加了第二个条件,检查$key名称是否存在,如果存在,则删除该数组项。
这是"else if"部分,但是该数组项仍然被输出。
else if ($key == "type") {
unset ($domaindata[$key]);
}
数组的结构如下:
Array
(
[name] => OWNER NAME
[address] => OWNER ADDRESS
[post:number] => OWNER POST OFFICE NUMBER
[city] => OWNER CITY
[country] => OWNER COUNTRY CODE
[telephone] => OWNER TELEPHONE NUMBER
[fax] => OWNER FAX NUMBER // could be empty
[email] => OWNER EMAIL ADDRESS
[type] => person
[user:type] => Fizička osoba
)
$value
分配给$key
,否则它不会改变。简单的方法是使用$key => &$value
,这样每当您编写$value =“-”
时,它都会直接修改数组。在foreach循环结束时运行unset
以清除变量。 - Bankzilla