计算多维数组中的数据
counting data in a multidemensional array
我用 Zend 上传了几个文件,想计算 $data 数组以获取文件名。
$data = array_merge_recursive(
$this->getRequest()->getPost()->toArray(),
$this->getRequest()->getFiles()->toArray()
);
我在另一个 post
中找到了这个计数代码
array_sum(array_map("count", $data))-1;
它给出了正确数量的碎片,我可以得到名字,但它也给出了警告:
Warning: count(): Parameter must be an array or an object that
implements Countable
我尝试给出其他维度,例如:
array_sum(array_map("count", $data['fieldname']))-1;
但正如预期的那样,它不起作用。
感谢任何帮助!唯一的问题是如何获取给定文件名的数量。
***编辑关于我的答案 post $data 数组的截图,这是正确的
这里warning的语句算什么(当然1是减)。或许还有其他的可能可以算。
所以一切都很好,但我想摆脱警告。
从添加的 $data
数组的屏幕截图来看,你不应该在下面这样做吗?
count($data['PAD_Document_Path'])
像这样循环获取特定的文件名
foreach($data['PAD_Document_Path'] as $key => $value) {
$name = pathinfo($value)['filename'];
// do stuff with name
}
参见pathinfo。从该文档页面:
Example #1 pathinfo() Example
<?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
?>
The above example will output:
/www/htdocs/inc
lib.inc.php
php
lib.inc
我用 Zend 上传了几个文件,想计算 $data 数组以获取文件名。
$data = array_merge_recursive(
$this->getRequest()->getPost()->toArray(),
$this->getRequest()->getFiles()->toArray()
);
我在另一个 post
中找到了这个计数代码array_sum(array_map("count", $data))-1;
它给出了正确数量的碎片,我可以得到名字,但它也给出了警告:
Warning: count(): Parameter must be an array or an object that implements Countable
我尝试给出其他维度,例如:
array_sum(array_map("count", $data['fieldname']))-1;
但正如预期的那样,它不起作用。
感谢任何帮助!唯一的问题是如何获取给定文件名的数量。
***编辑关于我的答案 post $data 数组的截图,这是正确的
这里warning的语句算什么(当然1是减)。或许还有其他的可能可以算。
所以一切都很好,但我想摆脱警告。
从添加的 $data
数组的屏幕截图来看,你不应该在下面这样做吗?
count($data['PAD_Document_Path'])
像这样循环获取特定的文件名
foreach($data['PAD_Document_Path'] as $key => $value) {
$name = pathinfo($value)['filename'];
// do stuff with name
}
参见pathinfo。从该文档页面:
Example #1 pathinfo() Example
<?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 ?>
The above example will output:
/www/htdocs/inc lib.inc.php php lib.inc