Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 比三重嵌套交换机更好的主意?_Php_Forms_Nested_Switch Statement - Fatal编程技术网

Php 比三重嵌套交换机更好的主意?

Php 比三重嵌套交换机更好的主意?,php,forms,nested,switch-statement,Php,Forms,Nested,Switch Statement,嗨,我有一些通过php脚本上传文件的表单,用户选择一个类别,而不是第二个子类别,然后选择文件类型 我必须将它上传到服务器上的正确目录中,路径看起来像..../category/sub-category/type/file.xxx--然后我将整个绝对路径放入我的数据库 到现在为止,我已经有了三重嵌套开关,有没有其他更好的方法 非常感谢 有一张HTML代码和PHP的图片-->不确定开关是在什么位置出现的。然而,您不能在一个语句中执行以下操作吗 $complete_filepath = "..../$

嗨,我有一些通过php脚本上传文件的表单,用户选择一个类别,而不是第二个子类别,然后选择文件类型

我必须将它上传到服务器上的正确目录中,路径看起来像..../category/sub-category/type/file.xxx--然后我将整个绝对路径放入我的数据库

到现在为止,我已经有了三重嵌套开关,有没有其他更好的方法

非常感谢


有一张HTML代码和PHP的图片-->

不确定开关是在什么位置出现的。然而,您不能在一个语句中执行以下操作吗

$complete_filepath = "..../$category/$sub_category/$type/$filename";

可能是一个多维数组将帮助您解决它。像这样:

$arr_dir_conf = array("dir_conf" =>
    array("category1" => 
        array("sub_category1" =>
            array("type1" => "directory/category1/sub_category1/type1"),
            ...
            array("typen" => "directory/category1/sub_category1/typen")

        ), 
        ...
        array("sub_categoryn" =>
        ...
        ),
    ),
    ...
);
move_uploaded_files($_FILES['file']['tmp_name'], 
    $arr_dir_conf[$category][$subcategory][$type]);
然后您只需像这样使用数组:

$arr_dir_conf = array("dir_conf" =>
    array("category1" => 
        array("sub_category1" =>
            array("type1" => "directory/category1/sub_category1/type1"),
            ...
            array("typen" => "directory/category1/sub_category1/typen")

        ), 
        ...
        array("sub_categoryn" =>
        ...
        ),
    ),
    ...
);
move_uploaded_files($_FILES['file']['tmp_name'], 
    $arr_dir_conf[$category][$subcategory][$type]);

这里无法发送代码,太长了,抱歉,伙计们,我第一次来到这里。你不需要发送整个代码,只需发送相关的代码片段。太长了。我添加了一个屏幕截图,希望它是可读的。为什么不把它放在Paste上或这里:图像不是真的可读。我用了更好的方法,找到更好的解决方案,无论如何,谢谢大家!只能从这里猜测,但是您是否也在开关中设置了类别和子类别,因为构建路径不需要知道为什么可以选择的值在下拉列表中。