2013-04-19 2 views
0

학생 번호 나 학생 이름의 일부를 취한 웹 페이지를 작성한 다음 학생 목록을 검색 한 다음 학생 번호와 전체 이름. 사용자가 학생 번호를 입력하면 이미 끝났습니다. 내 유일한 문제는 사용자가 이름을 입력 할 때입니다. 나는 strpos()을 사용하려고 생각했지만 다음에 무엇을해야하는지 모른다.이름의 일부만 입력하여 이름 목록을 검색하십시오.

는 여기에 지금까지 가지고있는 작업은 다음과 같습니다

function search_name_list($file, $info) 
{ 
    // get name list array 
    $students = get_name_list($file)['students']; 
    if (!$students) 
    { 
     return false; 
    } 

    // the user searched for the student number 
    if (ctype_digit($info)) 
    { 
     // return the name corresponding to the student number if found 
     if (array_search($info, $students['snum'])) 
     { 
      return $students['name'][$info]; 
     } 
    } 

    // the user searched for the name 
    else 
    { 
     // convert array into string 
     $content = implode('|', $students); 

     // TODO... 
    } 

    return false; 
} 

내가 코드의 주석 너희들이 문제를 이해하는 데 도움이 충분히 분명하다 바랍니다. 또한 전반적인 기능 향상에 대한 제안 사항이 있으면 말할 수도 있습니다.

편집 : 예제가 필요하다고 생각합니다.

예 : 배열에 [ "20111122953", "Acosta, Arbyn", "20111112345", "Mayer, Patrick"]이 포함되어 있습니다. 그러나 사용자가 "Arbyn"또는 "Acosta"만 입력하면 배열에서 내 하위 문자열 만 검색해야합니다. 그런 다음 내 이름에 해당하는 이름과 학생 번호를 반환하십시오.

답변

0

당신은 당신의 결과를 통해 itterate 수 있습니다

foreach($students AS $value){ 
    if(stripos($value, $search) !== false){ 
     echo 'got '.$value 
     break; 
    } 
} 
+0

내가 문자열 배열의 하위 문자열이 있는지 확인해야하기 때문에 내 생각은 작동하지 않습니다. 예 : 배열에 [ "20111122953", "Acosta, Arbyn", "20111112345", "Mayer, Patrick"]이 있습니다. 그러나 사용자가 "Arbyn"또는 "Acosta"만 입력하면 배열에서 내 하위 문자열 만 검색해야합니다. 그런 다음 내 이름에 해당하는 이름과 학생 번호를 반환하십시오. –

+0

같은 원칙. 배열 값을 사용하십시오 :'stripos ($ value [1], $ search)' – pmayer

+0

좋아, 왜 내가 $ value [1]을 사용했는지 이해할 수는 없지만 개념을 얻었고 내 배열의 키 학생 번호는 자기 - _-하지만 이제는 제대로 작동했습니다 : D 고마워요! –

관련 문제