2 回答

TA贡献1777条经验 获得超3个赞
如果您想以更实用和优雅的方式实现相同的目标,则可以使用array_reduce
array_reduce($item->getProperty(), function($sum, $single) {
if (strpos($single->getPropertyName(), 'foo') === 0) {
$sum++;
}
return $sum;
});
可读性较差但更优雅的单行解决方案如下所示:
array_reduce($item->getProperty(), function($sum, $single) { return (strpos($single->getPropertyName(), 'foo') === 0) ? ++$sum : $sum; }
现在我们在PHP中具有短箭头函数,如果您在PHP 7.4上运行,则可以使用它:
array_reduce($item->getProperty(),
fn($sum, $single) => (strpos($single->getPropertyName(), 'foo') === 0) ? ++$sum : $sum);

TA贡献1830条经验 获得超9个赞
<?php
$list = $item->getProperty();
$n = 0;
foreach($list as $single) {
$designation = $single->getPropertyName(); // var_dump($designation); outputs 150 strings
if (strpos($designation, 'foo') === 0) { // var_dump($designation); outputs 5 strings containing 'foo' in their designation names
$n++;
}
}
echo $n;
- 2 回答
- 0 关注
- 104 浏览
添加回答
举报