2010-06-13 7 views
0

으로 변환합니다. 다음 코드는 12/5/10을 출력 할 would을 출력합니다. 이유는 연관 배열에만 array_search이 적용되고 explode은 키가없는 배열을 반환하므로 및 $k+11입니다.키리스 배열을 연관 배열

$s = 'We would like to book a double room form 12/5/10 for three nights.'; 
$s_arr = explode(' ', $s); 
$k = array_search('from', $s_arr); 
$from = $s_arr[$k+1]; 
echo $from; 

이번

$s_arr = array(
    0 => 'We', 
    1 => 'would', 
    2 => 'like', 
    3 => 'to', 
    4 => 'book', 
    5 => 'a', 
    6 => 'double', 
    7 => 'room', 
    8 => 'form', 
    9 => '12/5/10', 
    10=> 'for', 
    11=> 'three', 
    12=> 'nights.'); 
$k = array_search('from', $s_arr); 
$from = $s_arr[$k+1]; 
echo $from; 

같은 12/5/10이고 정확한 값 밖으로 이번에 리터럴 정의를 사용하여 확인할 수있다.

키없는 배열을 연관 배열로 변환하는 방법이 있습니까?

+0

그냥 두 번째 코드 블록을 시도했지만 실패했습니다! 내가 뭘 놓치고 있니? –

+1

왜이 일을하는거야? 이 함수의 목적은 날짜를 추출하는 것입니다. 그렇다면 정규 표현식을 사용하는 것이 좋습니다. preg_match는 배열이 roundtrip 및 array_search를 폭발시키는 것보다 빠른 방법입니다. – mario

+0

@mario - 이것들은 지능형 응답자를 구현하기위한 단계입니다. 많은 부분이 변경되지만 지금은 폭발 + 검색이 가능합니다. –

답변

4

당신이 폭발하고있는 원래 문자열에서 "보낸 사람"의 철자를 잘못 입력했기 때문에이 작업을 수행한다고합니다.

+0

맞춤법을 수정 한 상태에서이 코드를 테스트 한 결과 정상적으로 작동합니다. – cam8001

+0

남자 감사합니다! 난독증을 가진 코더에게는 인생이 힘듭니다. –

+1

@Majid - Netbeans 또는 다른 IDE를 사용하는 것이 좋습니다. 이렇게하면 이러한 오타를 쉽게 식별 할 수 있습니다. 또한 E_NOTICE를 포함하도록 오류 로깅을 설정하고 오류 로그 (http://php.net/manual/en/errorfunc.configuration.php)를 주시하십시오. –