2012-06-02 2 views
0

저는 단어를 배열에 저장하고 있습니다. 양식의 새 단어를 추가 할 때마다 기존 배열에 추가합니다.array_push와 array_flip을 결합합니다.

단어가 값의 배열이 아닌 키에 저장되어 있는지 확인하고 싶습니다. 방금 array_flip을 사용하여 처음에는이를 수행하지만 새 단어를 추가하면 값으로 저장됩니다.

간단하지만, 배열이 항상 단어를 키로 저장하도록 명령 할 수있는 방법은 무엇입니까?! $_SESSION['words'] 단어의 기존 배열과 $_POST['additions'] 새로운 들어오는 단어를 추가 할 수 있습니다 : : 여기

if (isset($_POST['additions']) === true) { 

    // do cleanup 
    $additions = explode(",", $_POST['additions']); // create array from $_POST['additions'] 
    $additions = array_map('trim', $additions); // remove whitespace 
    $additions = array_filter($additions); // remove blank array elements  
    $additions = preg_replace("/,(?![^,]*,)/",'',$additions); // remove stray characters 

    foreach($additions as $key => $value) {  
     // append content to $_SESSION['words'] 
     array_push($_SESSION['words'], $value);  
    } 

    // swap all the array values with the array keys 
    $_SESSION['words'] = array_flip($_SESSION['words']);  

    // swap keys with values 
    foreach($_SESSION['words'] as $key => $value) {   
     $key = $value; 
     $value = ""; 
    } 

답변

2

당신이 이동 :

foreach($additions as $key => $value) {  
    // append content to $_SESSION['words'] 
    $_SESSION['words'][$value]=count($_SESSION['words'])+1;  
} 

미리 감사드립니다 ... 여기

내 코드입니다 뒤집을 필요가 없습니다. 첫 번째 foreach 루프를이 코드로 바꾸고 그 뒤의 모든 것을 제거하십시오.

+0

완벽한 덕분에 너무 많이! – matski

관련 문제