Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.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 具有数组第一个值的foreach循环_Php_Wordpress_Loops_Foreach - Fatal编程技术网

Php 具有数组第一个值的foreach循环

Php 具有数组第一个值的foreach循环,php,wordpress,loops,foreach,Php,Wordpress,Loops,Foreach,我有一个自定义WordPress元数据库,在这里我上传了一个文件。 只有位置保存到数据库,而文件CSV保存到服务器。 在fgetcsv的帮助下,我将csv发送到页面前端 我希望能够在一个页面上有多个文件。 因此,我在interwebs动态字段的帮助下创建了动态字段,以便仅在必要时添加。 该文件在wp_upload_位的帮助下保存到数据库中,这意味着有一个使用文件名和文件url保存的数组。因此,为了响应它们,我使用:$file['file']或$file['url'] 现在的问题是: 有一个for

我有一个自定义WordPress元数据库,在这里我上传了一个文件。 只有位置保存到数据库,而文件CSV保存到服务器。 在fgetcsv的帮助下,我将csv发送到页面前端

我希望能够在一个页面上有多个文件。 因此,我在interwebs动态字段的帮助下创建了动态字段,以便仅在必要时添加。 该文件在wp_upload_位的帮助下保存到数据库中,这意味着有一个使用文件名和文件url保存的数组。因此,为了响应它们,我使用:$file['file']或$file['url']

现在的问题是: 有一个foreach循环,echo的所有上传文件都是为了动态添加和删除字段。 因为数组是用wp_upload_位保存在数据库中的,所以我总是得到两个输出文件和url,而且我只需要文件

这是代码。 我似乎无法理解:

<?php 
$file = get_post_meta(get_the_ID(), 'meta_box_csv', true);
$c = 0;
$i = 0;
if ( count( $file['file'] ) > 0 ) {
    foreach( $file as $csv ) {
        if ( isset( $csv['file']) ) {
            printf( '<p><input type="file" id="meta_box_csv_'.$i.'" name="meta_box_csv_'.$c.'" value="'.$csv['file'].'" size="15" /><span class="remove">Remove</span> </p>' );
            $c = $c +1;
            $i = $i +1;
        }
    }
}
?>

根据您提供的转储,$file只代表一个文件,而不是一个文件集合,因此没有什么需要处理的。您应该能够只检查isset$file['file'],然后使用$file['file']而不是$csv['file']打印F


因此,您的代码可以正常工作,只是您不需要$file['url']部分,而是想摆脱它?嗯,很有趣。我还没想到。我对foreach$文件有问题,因为它占用整个数组。。。。你会怎么做。只是清空url的值?实际上我还不确定哪部分坏了。你的代码行得通吗?代码行得通这不是问题,如果我不清楚,很抱歉。问题是,如果保存了一个文件,它会在数据库中的一个名为file和url的数组中放置两个值。如果foreach运行,它将输出文件和url。我只想输出文件。希望这更清楚我没有看到url在上面的代码片段中是如何呈现的。您只引用了文件,所以它不应该是.Hmmm。。我来看看这个。问题是,用户将能够向阵列添加更多文件。。。然后应该是每个人都能得到你想要的,但是如果$file不是一个文件数组,那么你需要修复其他东西。您是否已经查看了插件高级自定义字段?这让整个事情变得简单多了。我来看看。谢谢你的努力。丹杰!
<?php 
$file = get_post_meta(get_the_ID(), 'meta_box_csv', true);
$c = 0;
$i = 0;

if ( isset( $file['file']) ) {
    printf( '<p><input type="file" id="meta_box_csv_'.$i.'" name="meta_box_csv_'.$c.'" value="'.$file['file'].'" size="15" /><span class="remove">Remove</span> </p>' );
    $c = $c +1;
    $i = $i +1;
}