2012-12-13 1 views
4

PDO API를 사용하고 fetchAll()을 사용하면 다중 차원 배열이 반환됩니다. 아래의 스 니펫은 테스트 시나리오 일뿐입니다. 나는 그것이 가능한지 알고 싶다.검색 MultiDimensional Array 문자열 및 키 얻기

$LeUsername = "BravoSlayer"; 
$sth = $dbh->prepare("SELECT * FROM users WHERE Username='$LeUsername'"); 
$sth->execute(); 
$result = $sth->fetchAll(); 
print_r($result); 
$ArraySearch = search_array($result, $LeUsername); 

출력은 아래와 같다 : 키 I를 반환하는 다차원 배열을 통해 검색 할

Array ([0] => Array ([ID] => 1 [0] => 1 [Username] => bravoslayer [1] => bravoslayer [Password] => thisisatest [2] => thisisatest)) 

. 이 경우는 0 그래서 난 그냥 $ 배열 1 = $ 배열 1을 또 다른 변수 변수를 연관시킬 수있을 것입니다 [0] 그래서 그때부터 나는 수행 할 수 있습니다

$Username = $Array1['Username']; 
+0

whytf 하시겠습니까? –

+0

@ onlineapplab.com OP가 문자열을 검색하기 위해 다차원 배열을 검색하는 중이다. 문자열이 발견되면 배열의 첫 번째 둥지의 키를 반환합니다. –

+0

@DarylGill 나는 왜 $ Array1을 초기화하고 $ result1을 사용하는 대신 $ Array1 [ 'Username']을 사용하려고하는지에 관심이 있습니다. [0] [ 'Username'] SQL WHERE 조건에 사용자 이름이 있으므로 각 레코드의 사용자 이름이 동일합니다. –

답변

0

을 질문으로 판단. foreach 루프 내에서 기본 배열을 검색하고 in_array을 사용하여 올바른 배열을 반환 할 수 있습니다.

참조 용으로 사용하십시오.

function Search_Array($Array, $SearchDilema) 
    { 
     foreach ($Array AS $CheckKeys) 
     { 
      if (in_array($SearchDilema, $CheckKeys)) 
      { 
       return $CheckKeys; 
      } 
      else 
      { 
       $ErrorMsg = "No Results Found! Check Your Search Dilema"; 
       return $ErrorMsg; 
      } 
     } 

    } 
+0

고마워요. 이것은 완벽하게 작동했습니다. '$ Test = Search_Array ($ result, $ LeUsername);'이 함수를 호출하겠습니까? –

+0

@ user1902584 올바른 –

+0

루프가 배열의 첫 번째 요소 만 검색합니다 –