2016-03-28 15 views
0

私は現在facebook phpを使用しており、ユーザーが入力した名前に基づいて特定のページ名を取得しようとしています。PHPが配列の特定の値を取得する

たとえば、(Apple、Orange、Pear)の配列を持っているとします。私は変数$ var = "Pea"を持っています。どのように私は新しい変数を設定すると、結果=梨と言うことができます。現時点では私はそうのような正確なFacebookのページ名にハードコーディングしています:

if($key['name']=="Exact Page Name HERE"){ 
     $post = $fb->post('/' . $key['id'] . '/feed',$params, $key['access_token']); 
     $post = $post->getGraphNode()->asArray(); 
     echo ("Post successful"); 
    } 

私の目標は、Facebookのからのユーザー管理ページの配列を取得してから入力したユーザーに、各ページの名前を比較することができることです変数を読み込み、ページ名=を最も近い変数と一致する名前に設定します。

+0

を使用するには、アレイを通過するFOREACH()コマンドを使用することですそれぞれの名前を比較する。また、 "==="コマンドを使うべきです。なぜなら、 "=="は実際にはマッチしないものにマッチすることができるからです。 (Pear and Peach => Peaは同じです)。 –

+0

@MarkManningは返事をありがとう。私は現在、それぞれが完全な配列を得るために持っている。私の質問は今foreachループを使っていますが、どのように変数を変数と比較するのですか?この場合、Facebookのページ名は「Ford Cars」になる可能性がありますが、ユーザー変数は「Ford」なので、どのように一致させるのですか? – DetectiveClarke

+0

文字列の最初またはどこかでのみ一致させますか?もし '$ var =" pple "'それが 'Apple'にマッチすればいいのですか? – Barmar

答えて

0

strpos()を使用すると、サブストリング$varが配列要素に含まれているかどうかを確認できます。文字列の冒頭にがある場合、0が返されます。

foreach ($array as $index => $el) { 
    if (strpos($el, $var) === 0) { 
     // match found, do what you want 
    } 
} 

strpos戻りfalse文字列が見つからない場合は、どのようなあなたが緩んで比較false == 0を使用しているため、==、必ず===を使用しないでください。

あなたはどこにでも文字列に一致する場合は、残っているすべての名前の配列を取得する方法を知っていれば、strstr()

if (strstr($el, $var)) { 
    // match found, do what you want 
} 
+0

strpos()関数を知っていますが、$ varにマッチする配列値をどのように設定すればいいですか=新しい変数? – DetectiveClarke

+0

一致するものが見つかったら、 '$ array [$ index]'をあなたが望むものに設定します。 – Barmar

関連する問題