2012-09-19 5 views
0

동료가 확장명이없는 파일 이름을 입력하고 반환하는 텍스트 영역이 있습니다. 내 코드는이 입력 목록을 받아 $list이라는 배열을 만듭니다. 그것은 그 배열을 가지고 업데이트 된 배열이 같은 별도의 파일 이름 $genList라는 만듭니다 :값 조작을 사용하여 배열에서 배열 만들기

HOL_12_001_00 
HOL_12_002_00 
HOL_12_003_00 

을 : 그것은 노동자가 이렇게 같은 일부 파일 이름을 입력하면 약자로 너무

$fileString = $_POST['fileList']; 
$unique = $_POST['unique']; 
$size = $_POST['size']; 
$generateArray = $_POST['generateArray']; 

$list = explode("\r\n",$fileString); 

if ($generateArray == "yes") { 
    if ($size == "5x7inimpos") { 
     $genList = array(); 
     foreach($list as $element) { 
      array_push($genList, $element . "_f", $element . "_b", $element . "_i"); 
     } 
    }   
    $list = array(); 
    $list = $genList;   
} 

결국이 같은 파일 이름의 끝 부분에있는 확장자를 가진 배열로 변환 얻을 것이다 :

$list = array(HOL_12_001_00_f, HOL_12_001_00_b, HOL_12_001_00_i, HOL_12_002_00_f, HOL_12_002_00_b, HOL_12_002_00_i, HOL_12_003_00_f, HOL_12_003_00_b, HOL_12_003_00_i); 

하지만 난 정말 함께 (최종 배열이되어 무엇을해야하는지 _f,이 같은 파일 이름의 내부 _i) _b :

$list = array(HOL_12_f_001_00, HOL_12_b_001_00, HOL_12_i_001_00, HOL_12_f_002_00, HOL_12_b_002_00, HOL_12_i_002_00, HOL_12_f_003_00, HOL_12_b_003_00, HOL_12_i_003_00); 

은 내가 어떻게 이것을 달성 할 수 있습니까? 이 하나

foreach($list as $element) { 
    array_push($genList, $element . "_f", $element . "_b", $element . "_i"); 
} 

:

+0

파일 이름의 고정 명명 규칙이 있습니까? 또는 파일 이름은 anyname이 될 수 있습니까? – GBD

답변

3

이 다음 코드를 바꿉니다 당신이 설명한 방법으로 배열을 생성합니다

$letter = array('f','b','i'); 
foreach($list as $element) { 
    for ($i=0;$i<3;$i++) { 
     $arr = explode('_', $element); 
     $arr[1] .= '_' . $letter[$i]; 
     $genList[] = implode('_', $arr); 
    } 
} 

.

+0

감사합니다! 그것은 작동하지만, 어떻게 정확한 위치에 글자를 입력하도록 지정했는지 이해하지 못합니다. 설명 할 수 있니? – thindery

+0

트릭은 explode() 및 implode() 함수입니다. http://www.php.net에서 트릭을 읽으십시오. – Nelson