您好我正在使用第三方API,它根据邮政编码和地址查询获取地址数据,它会返回xml上的数组,这很正常。在返回的30多个可用字段中,有8个我想插入备忘录框类型字段,有
$item["Line1"] . "<br/>";
$item["Line2"] . "<br/>";
$item["Line3"] . "<br/>";
$item["Line4"] . "<br/>";
$item["Line5"] . "<br/>";
$item["PostTown"] . "<br/>";
$item["County"] . "<br/>";
$item["Postcode"] . "<br/>";
我的问题是,如何将这些放入字段并删除空行以使地址连续运行?
例如,使用上面的代码,如果第3行,第4行和第5行为空,结果将是
第1行
邮政镇
县
邮编
我能想到的唯一方法就是写一篇很长的if语句,除非有人能告诉我一个更聪明的方法,否则我不必这样做。
答案 0 :(得分:0)
像这样(未经测试):
for($i = 1; $i <= 5; $i++) {
if(!is_null($item['Line'.$i]) && strlen($item['Line'.$i])) {
// do something with it
echo $item['Line'.$i] . '<br/>';
}
}
如果您想要$item
中的每个字段:
foreach($item as $value) {
if(!is_null($value) && strlen($value)) {
// do something with it
echo $value . '<br/>';
}
}
答案 1 :(得分:0)
您可以将键放入如下数组:
$arrayKeys = array("Line1","Line2","Line3","Line4","Line5","PostTown","County","Postcode");
然后你可以循环它将输出添加到另一个变量并回显它:
$output = "";
foreach($arraysKeys as $key){
if(array_key_exists($key, $item){
$output .= $item[$key] . "<br/>";
}
}
echo $output;
答案 2 :(得分:0)
如果您不想使用“if”语句,可以使用ternary operators:
(strlen(trim($item["Line1"])) > 0 ? $item["Line1"] . "<br/>" : "");
(strlen(trim($item["Line2"])) > 0 ? $item["Line2"] . "<br/>" : "");
(strlen(trim($item["Line3"])) > 0 ? $item["Line3"] . "<br/>" : "");
(strlen(trim($item["Line4"])) > 0 ? $item["Line4"] . "<br/>" : "");
(strlen(trim($item["Line5"])) > 0 ? $item["Line5"] . "<br/>" : "");
(strlen(trim($item["PostTown"])) > 0 ? $item["PostTown"] . "<br/>" : "");
(strlen(trim($item["County"])) > 0 ? $item["County"] . "<br/>" : "");
(strlen(trim($item["Postcode"])) > 0 ? $item["Postcode"] . "<br/>" : "");
答案 3 :(得分:0)
是否可以让$ item [&#39; line&#39;]成为一个数组并循环通过这个数组?
$项[&#34;线&#34;] [0]
$项[&#34;线&#34;] [1]
...
foreach ($item['line'] as $line) {
if (!empty($line)) {$line . "<br/>";}
}
答案 4 :(得分:0)
我会这样做:
array_walk($item, function($val) {
if (!is_null($val)) echo $val. "<br/>";
});
答案 5 :(得分:0)
您可以按如下方式查看条件:
if(trim($item["Line1"])):echo $item["Line1"] . "<br/>";endif;
if(trim($item["Line2"])):echo $item["Line2"] . "<br/>";endif;
另一种方式:
foreach($item as $cur){
if(trim($cur)): echo "$cur <br>"; endif;
}