2017-09-08 8 views
0

私はワードプレスループ内で呼び出される配列を持っています。ループの外側の同じページで同じ配列を呼び出す必要もあります。ページ上で同じ配列を2回使用する

2番目の配列は常に空白を返します。これは、配列をコピーして2回目に使用しているループの外側に追加しても発生します。

なぜこのようなことが起こっているのか、どのように処理するのかはわかりません。

<?php 
// get ACF custom relationship field 'select' 
$rmcwordwide = get_field('rights_management_control_by_worldwide', $post->ID); $rmcwordwidearray = str_split($rmcwordwide,2); 
$rmcnorthamerica = get_field('rights_management_control_by_northamerica', $post->ID); $rmcnorthamericaarray = str_split($rmcnorthamerica,2); 
$rmcusaonly = get_field('rights_management_control_by_usaonly', $post->ID); $rmcusaonlyarray = str_split($rmcusaonly,2); 
$rmcusalatam = get_field('rights_management_control_by_usalatam', $post->ID); $rmcusalatamarray = str_split($rmcusalatam,2); 
$rmclatamonly = get_field('rights_management_control_by_latamonly', $post->ID); $rmclatamonlyarray = str_split($rmclatamonly,2); 

// Merger arrays 
$rmcarray = array_merge((array)$rmcwordwidearray, (array)$rmcnorthamericaarray, (array)$rmcusaonlyarray, (array)$rmcusalatamarray, (array)$rmclatamonlyarray); 
// GET USERS COUNTRY LOCATION FROM IP USING MAXMIND 
require '/home/xxxx.com/public_html/vendor/autoload.php'; 

$gi = geoip_open("/home/xxxx.com/public_html/GeoIP.dat",GEOIP_STANDARD); 
$ip = strtolower($_SERVER['REMOTE_ADDR']); 
$countrycode = strtolower(geoip_country_code_by_addr($gi, $ip)); 
geoip_close($gi); 

if (in_array($countrycode, $rmcarray)): ?>HELLO<?php endif; ?> 

各配列には1つの文字列があります。私はその後、文字列を分解し、それぞれの新しい配列を作成します。

次に、配列をマージします。

それから私は、ユーザーの位置を取得し、マージされた配列のエントリとユーザーの国コードが一致した場合、その後...

+4

コードを追加します。おそらく欠陥のある記述に基づいて何が起こっているかを知る方法はありません。 –

+0

これはあなたが探している答えですか? [外部で使用するwhileループの配列を格納](https://stackoverflow.com/questions/27144302/store-array-in-while-loop-to-use-outside) – Hossam

+0

問題を見つけるのを手助けすることはできませんあなたが私たちにそれがあるコードを表示しなければ...私たちは読者を気にしません! :)関連するコードを[最小限で完全であり、検証可能な例](https://stackoverflow.com/help/mcve)およびあなたが既に試したことの要約として含める必要があります。 [質問方法](https://stackoverflow.com/help/how-to-ask)をご覧ください。 – FluffyKitten

答えて

0

は、ループを開始する前に、独自の配列VARを作成します。ループの内部で、ループの結果を各繰り返しに新しい配列に追加します。次に、ループの外側にある任意の場所に新しく配置された配列を使用します。

関連する問題