我使用Zend上传了几个文件,并希望计算$ data数组以获取文件名。
$data = array_merge_recursive(
$this->getRequest()->getPost()->toArray(),
$this->getRequest()->getFiles()->toArray()
);
我发现此代码可用于其他帖子的计数
array_sum(array_map("count", $data))-1;
它给出了合适的数量,我可以得到名称,但是它也给出了警告:
警告:count():参数必须是数组或对象, 实现Countable
我尝试给出其他尺寸,例如:
array_sum(array_map("count", $data['fieldname']))-1;
但是像预期的那样,它不起作用。
任何帮助表示赞赏!唯一的问题是如何获取给定文件名的数量。
***针对答案进行编辑,我发布了$ data数组的屏幕截图,这是正确的
这是带有警告的语句的计数(当然1是减法)。也许还有另一种可能性可以计数。
所以一切都很好,但我想摆脱警告。
答案 0 :(得分:1)
从$data
数组的添加屏幕截图来看,您是否应该在下面执行此操作?
count($data['PAD_Document_Path'])
像这样循环获取特定的文件名
foreach($data['PAD_Document_Path'] as $key => $value) {
$name = pathinfo($value)['filename'];
// do stuff with name
}
请参见pathinfo。在该文档页面上:
示例#1 pathinfo()示例
<?php $path_parts = pathinfo('/www/htdocs/inc/lib.inc.php'); echo $path_parts['dirname'], "\n"; echo $path_parts['basename'], "\n"; echo $path_parts['extension'], "\n"; echo $path_parts['filename'], "\n"; // since PHP 5.2.0 ?>
上面的示例将输出:
/www/htdocs/inc lib.inc.php php lib.inc