多维数组中的数据计数

时间:2018-10-09 14:21:32

标签: php zend-framework zend-form zend-framework3

我使用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数组的屏幕截图,这是正确的

enter image description here

这是带有警告的语句的计数(当然1是减法)。也许还有另一种可能性可以计数。

enter image description here

所以一切都很好,但我想摆脱警告。

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