Php 具有数组第一个值的foreach循环
我有一个自定义WordPress元数据库,在这里我上传了一个文件。 只有位置保存到数据库,而文件CSV保存到服务器。 在fgetcsv的帮助下,我将csv发送到页面前端 我希望能够在一个页面上有多个文件。 因此,我在interwebs动态字段的帮助下创建了动态字段,以便仅在必要时添加。 该文件在wp_upload_位的帮助下保存到数据库中,这意味着有一个使用文件名和文件url保存的数组。因此,为了响应它们,我使用:$file['file']或$file['url'] 现在的问题是: 有一个foreach循环,echo的所有上传文件都是为了动态添加和删除字段。 因为数组是用wp_upload_位保存在数据库中的,所以我总是得到两个输出文件和url,而且我只需要文件 这是代码。 我似乎无法理解:Php 具有数组第一个值的foreach循环,php,wordpress,loops,foreach,Php,Wordpress,Loops,Foreach,我有一个自定义WordPress元数据库,在这里我上传了一个文件。 只有位置保存到数据库,而文件CSV保存到服务器。 在fgetcsv的帮助下,我将csv发送到页面前端 我希望能够在一个页面上有多个文件。 因此,我在interwebs动态字段的帮助下创建了动态字段,以便仅在必要时添加。 该文件在wp_upload_位的帮助下保存到数据库中,这意味着有一个使用文件名和文件url保存的数组。因此,为了响应它们,我使用:$file['file']或$file['url'] 现在的问题是: 有一个for
<?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;
}