为了账号安全,请及时绑定邮箱和手机立即绑定

菲律宾比索。计算 foreach 循环中满足特定条件的字符串数

菲律宾比索。计算 foreach 循环中满足特定条件的字符串数

PHP
慕后森 2022-09-03 16:25:22
我正在尝试查找在循环中满足某些条件的字符串数。这是我到目前为止尝试过的:foreach<?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 count($n);     }}?>echo count($n);返回而不是返回我想要获取的值。111115有人可以帮我一点吗?
查看完整描述

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);


查看完整回答
反对 回复 2022-09-03
?
慕标琳琳

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;


查看完整回答
反对 回复 2022-09-03
  • 2 回答
  • 0 关注
  • 104 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号