我有一个函数(为了简单起见,我只使用count()),我想要应用于大约4-5个不同的变量。现在,我正在做这件事:
$a = count($a);
$b = count($b);
$c = count($c);
$d = count($d);有没有更好的方法?我知道数组可以使用array_map函数,但我希望值作为单独的值保留,而不是数组中的值。
谢谢。
发布于 2009-01-06 17:18:00
我知道您说过不希望值在数组中,但如果只创建一个专门用于循环遍历这些值的数组呢?即:
$arr = Array($a, $b, $c, $d);
foreach ($arr as &$var)
{
$var = count($var);
}不过,我不确定这是否真的比原来的方式更整洁。
发布于 2009-01-06 17:20:34
如果你有一堆重复的变量来收集数据,你的代码设计得很差,应该只使用一个数组来存储值,而不是几十个变量。所以你可能想要这样的东西:
$totals = array("Visa"=>0,"Mastercard"=>0,"Discover"=>0,"AmericanExpress"=>0);然后,您只需添加到数组元素中(例如,从SQL中的while循环或您正在做的任何事情)
$totals['Visa'] += $row['total'];但是如果你真的想要走这条路,你可以使用给你的工具,如果你想用大批量来做这件事,那么数组是一个很好的选择。然后对数组进行foreach并使用变量变量,如下所示:
$variables = array('a','b','c'...);
foreach ( $variables as $var )
{
${$var} = count(${var});
}发布于 2009-01-06 18:35:09
Ben和TravisO所说的,但是使用array_walk来实现更简洁的代码:
$arr =数组($a,$b,$c,$d);array_walk($arr,计数);
https://stackoverflow.com/questions/417373
复制相似问题