2011-08-16 5 views
0

제 테이블을 반복하여 PHP 포함 파일의 배열과 값을 비교하고 싶습니다. 일치하는 항목이 있으면 일치하는 항목의 배열 키를 반환하고 테이블의 값으로 바꿉니다. 포함 파일에서 배열 키를 반환하고 테이블 값과 비교하는 데 도움이 필요합니다. 별도의 파일PHP 배열 : 테이블에서 일치하는 값을 검색하고 배열 키로 바꾸기

 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 테이블이 망치와 나무가있는 경우 그래서 본질적으로, $ 발 루프에서 12aaa 및 3ccr를 생성합니다 나의 루프에서

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

. 어떤 도움이 필요합니까? 덕분에 많은

답변

2

주어진 값과 관련된 키가있는 경우이를 반환하는 array_search을 찾고 있습니다. 당신이 원하는하지 않거나 제안 @genesis 같은 $myarray 구조를 변경할 수없는 경우

$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

난 당신이 함수와 in_array ($ 발, $의에서 myArray)가 필요합니다 생각과 같아야합니다;

0

, 당신은 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