好吧,我显然对这个简单的脚本没有足够的知识。基本上,最后我将在地址字段上使用ifthen语句,如果它为空,则不会显示地图,如果有地址,则会显示地图。
这不是ifthen语句,我只想弄清楚如何从数组中写一个,或者其他什么,我得到了。这是我可以从地址字段输出的内容。
<?php
global $userdata, $app_abbr, $gmap_active;
$custom_fields = get_post_custom();
$varaddress = $custom_fields[$app_abbr.'_street'];
echo strlen($varaddress); //
var_dump($varaddress); //
echo string($varaddress);
?>
这就是我从中得到的:
地址字段为空时
5array(1) { [0]=> string(0) "" }
地址字段已满:
5array(1) { [0]=> string(24) "14 South Magnolia Avenue" }
我正在试图弄清楚如何编写一个简单的ifthen语句来反对这个,但无论我如何尝试都会让它恢复正常...所以我把它分解以确切地知道返回的是什么,那就是输出。怎么样?
好了,因为我现在知道如何从阵列中“弹出”某些东西......大声笑这里的ifthen语句似乎有效。让我知道它是否可以简化:
<?php
global $userdata, $app_abbr, $gmap_active;
$custom_fields = get_post_custom();
$varaddress = $custom_fields[$app_abbr.'_street'];
$varmap = array_pop($varaddress);
if (strlen($varmap) >= 1 && !is_bool($varmap)) {
include_once ( TEMPLATEPATH . '/includes/sidebar-gmap.php' );
} else {
echo "NO ADDRESS GIVEN FOR MAP";
}
?>
答案 0 :(得分:2)
你拥有的是一个单元素阵列。您可以通过其数组索引[0]
访问该地址,也可以将其弹出:
echo $varaddress[0];
// Or
echo array_pop($varaddress);
它为5
提供strlen()
的原因是,当您将数组作为字符串转换为将其传递给类似strlen()
的函数时,它将返回字符串{{1它的长度为5.结果是误导性的,与数组的实际内容无关。