代码之家  ›  专栏  ›  技术社区  ›  pia-sophie

多维数组中的数据计数

  •  0
  • pia-sophie  · 技术社区  · 7 年前

    $data = array_merge_recursive(
                        $this->getRequest()->getPost()->toArray(),
                        $this->getRequest()->getFiles()->toArray()
                        );
    

    array_sum(array_map("count", $data))-1;
    

    它给出了正确数量的碎片,我可以得到名字,但它也给出了一个警告:

    警告:count():参数必须是数组或 可数工具

    我试着给出其他维度,比如:

    array_sum(array_map("count", $data['fieldname']))-1;
    

    但正如预期的那样,它不起作用。

    感谢您的帮助!唯一的问题是如何获得给定文件名的数量。

    ***编辑关于答案我张贴了一个截图如何$数据数组看起来像,这是正确的

    enter image description here

    enter image description here

    1 回复  |  直到 7 年前
        1
  •  1
  •   rkeet Aurimas    7 年前

    从添加的 $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