首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP:将一个函数应用于多个变量,而不使用数组

PHP:将一个函数应用于多个变量,而不使用数组
EN

Stack Overflow用户
提问于 2009-01-06 17:13:05
回答 5查看 2.7K关注 0票数 0

我有一个函数(为了简单起见,我只使用count()),我想要应用于大约4-5个不同的变量。现在,我正在做这件事:

代码语言:javascript
复制
$a = count($a);
$b = count($b);
$c = count($c);
$d = count($d);

有没有更好的方法?我知道数组可以使用array_map函数,但我希望值作为单独的值保留,而不是数组中的值。

谢谢。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-01-06 17:18:00

我知道您说过不希望值在数组中,但如果只创建一个专门用于循环遍历这些值的数组呢?即:

代码语言:javascript
复制
$arr = Array($a, $b, $c, $d);

foreach ($arr as &$var)
{
   $var = count($var);
}

不过,我不确定这是否真的比原来的方式更整洁。

票数 4
EN

Stack Overflow用户

发布于 2009-01-06 17:20:34

如果你有一堆重复的变量来收集数据,你的代码设计得很差,应该只使用一个数组来存储值,而不是几十个变量。所以你可能想要这样的东西:

代码语言:javascript
复制
$totals = array("Visa"=>0,"Mastercard"=>0,"Discover"=>0,"AmericanExpress"=>0);

然后,您只需添加到数组元素中(例如,从SQL中的while循环或您正在做的任何事情)

代码语言:javascript
复制
$totals['Visa'] += $row['total'];

但是如果你真的想要走这条路,你可以使用给你的工具,如果你想用大批量来做这件事,那么数组是一个很好的选择。然后对数组进行foreach并使用变量变量,如下所示:

代码语言:javascript
复制
$variables = array('a','b','c'...);

foreach ( $variables as $var )
{
    ${$var} = count(${var});
}
票数 3
EN

Stack Overflow用户

发布于 2009-01-06 18:35:09

Ben和TravisO所说的,但是使用array_walk来实现更简洁的代码:

$arr =数组($a,$b,$c,$d);array_walk($arr,计数);

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/417373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档