2012-02-13 11 views
1

私はちょうどこの単純なスクリプトの知識が不十分です。基本的には、最後にアドレス欄でifthen文を使用します。空の場合はマップは表示されず、アドレスがある場合はマップが表示されます。WordPressフィールドからの簡単な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" } 

私は試していますoこれに対して単純なifthen文を書く方法を見つけますが、どのように試してもtrueに戻ってきます...私は返されていたものを正確に見るために壊しました。どうやって?

私は今、配列から何か「ポップ」する方法を知っているので、ここではうまくいくと思われる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

明らかに、var_dumpは私に次のように与えています:array(1){[0] => string(24) "14 South Magnolia Avenue"}そして文字列($ varaddress)は何も返しません... – OcalaDesigns

答えて

2

あなたが持っているものは1要素の配列です。あなたは、その配列インデックス[0]によってアドレスにアクセスしたり、それを開くことができ、次のいずれか

echo $varaddress[0]; 
// Or  
echo array_pop($varaddress); 

それはあなたのstrlen()ため5を与える理由は、あなたがstrlen()のような関数に渡すときのように文字列として配列をキャストするときということですそれは長さが5の文字列Arrayを返します。結果は誤解を招き、配列の実際の内容とは何の関係もありません。

+0

私はそれを感謝します!私はstrlenと配列について考えましたが、それはそれを最も基本的な部分に分解した後でも私ができることすべてについてです。私は必要な部分を手に入れるために何かを見つけることができませんでした。私は通常、小さなものをぶら下げることができ、これは私を驚かせるだけでした!笑 – OcalaDesigns

関連する問題