0

同僚が拡張子なしでファイル名を入力し、その後にリターンを入力するテキスト領域があります。私のコードはこの入力リストを受け取り、 という配列を作成します$list$genList次に、その配列を取得し、次のような追加のファイル名で呼び出される更新された配列を作成します。

$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;           
}

現状では、ワーカーが次のようなファイル名を入力した場合:

HOL_12_001_00
HOL_12_002_00
HOL_12_003_00

最終的には、次のようにファイル名の末尾に拡張子が付いた配列として変換されます。

$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です_b:_i

$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);

どうすればこれを達成できますか?

4

1 に答える 1

3

次のコードを置き換えます。

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

これのために:

$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);
    }
}

これにより、説明した方法で配列が生成されます。

于 2012-09-19T17:33:02.910 に答える