首页 > 解决方案 > 匹配PHP中两个数组的索引以配对数据

问题描述

我正在做一个包含多个文件上传的表单,每个文件输入都有一个标题输入,我想将标题与文件匹配,以便能够用标题重命名文件。

我不知道如何匹配两个数组的索引才能做到这一点。

有人可以帮助我吗?谢谢

到目前为止,这是我的代码...

PHP:

$target_dir = 'files/';

if(isset($_POST['title']) && !empty($_POST['title'])){
    $total_titles = count($_POST['title']);
    for($key = 0; $key < $total_titles; $key++) {

        // Clean retrieved client data
        $pageName= $_POST['titles'];

    }

        // Check files 
        if(isset($_FILES['userfile']['name'])) {

            // Count the number of uploaded files
            $total_files = count($_FILES['userfile']['name']);

            // Loop on uploaded files
            for($key = 0; $key < $total_files; $key++) {

                // Check if file is selected
                if(isset($_FILES['userfile']['name'][$key]) && $_FILES['userfile']['size'][$key] > 0) {
        
                    $original_filename = $_FILES['userfile']['name'][$key]; 
                    
                    // Get the file extension
                    $extension = pathinfo($original_filename, PATHINFO_EXTENSION);  
                    
                    // Get filename without extension
                    $filename_without_extension = basename($original_filename, '.'.$extension);

                    // Generate new filename
                    $new_filename = str_replace(' ', '_', $filename_without_extension) . '_' . '.' . $extension; 
                    // Upload the file with new name
                move_uploaded_file($_FILES['userfile']['tmp_name'][$key], $target_dir . $new_filename);

            }
        } 
    }
}

HTML

<div class="container">
    <div class="row justify-content-center">
        <!-- Page names -->
        <form class="form col-xl-6" action="" id="page_list_section" method="post" enctype="multipart/form-data">
            <input type="text" name="title[]" placeholder="Title" >
            <input type="file" name="userfile[]" > 
            <input type="text" name="title[]" placeholder="Title" >
            <input type="file" name="userfile[]" > 
            <input type="submit" name="Submit" value="Upload" > 
         </form>
    </div>
</div>

标签: phparraysformsfileupload

解决方案


这是比赛:

for($key = 0; $key < $total_files; $key++) {
   $title = $_POST['title'][$key];
   $filename = $_FILES['userfile']['name'][$key];
}

推荐阅读