2011-08-16 10 views
0

テーブルをループして値をphpインクルードファイルの配列と比較したいと思います。一致するものがあれば、一致した項目の配列キーを返し、それを表の値に置き換えます。私はインクルードファイルから配列キーを返し、テーブル値と比較するのに助けが必要です。php配列:テーブル内の一致する値を検索し、配列キーで置換する

別々のファイルに私のループで
$myarray = array(
    "12aaa"=>"hammer", 
    "22bbb"=>"pinchbar", 
    "33ccr"=>"wood"); 

 include 'myarray.inc.php'; 
     while($row = $db->fetchAssoc()){ 
     foreach($row as $key => $val) 
     if $val has a match in myarray.inc.php 
      { 
      $val = str_replace($val,my_array_key); 
      } 


    } 

私のDBテーブルは、ハンマーや木を持っているのであれば、本質的には、$ valがループで12aaaと3ccrが生成されます。どんな助け?おかげでたくさんの

答えて

2

特定の値に関連付けられたキーが存在する場合は、それを返すarray_searchを探しています。

$result = array_search($val, $myarray); 
if ($result !== false) { 
    $val = $result; 
} 
+1

ありがとうございました。出来た。機能は人生を楽にします。 – karto

+0

@karto実際には:) –

0

あなたの配列が

$myarray = array(
    "hammer"=>"11aaa", 
    "pinchbar"=>"22bbb", 
    "wood"=>"33ccr"); 

とコード

if (isset($myarray[$key])){ 
    //do stuff 
} 
+0

感謝を利用することができます。そこにもっとコードが必要です。もっと助けて? – karto

+0

彼はキーではなく値を探しています。 – Mike

0

のようになります。私はあなたが($ valを、$ myarrayの)関数in_arrayが必要だと思います。

0

あなたが望んでいないか、提案@genesisよう$myarray構造を変更することができない場合は、array_flip

include 'myarray.inc.php'; 
$myarray = array_flip($myarray); 
while($row = $db->fetchAssoc()) { 
    foreach($row as $key => $val) { 
     if (isset($myarray[$val])) { 
      // Maybe you should use other variable instead of $val to avoid confusion 
      $val = $myarray[$val]; 

      // Rest of your code 
     } 
    } 
} 
+0

これも機能します。ありがとう – karto

関連する問題