PHP - 数组不能识别超过3位数的美元金额

时间:2011-12-20 15:27:58

标签: php arrays number-formatting

在我的配置文件中,我有如此定义的服务:

$services = array(
              array("service1", "500"),
              array("service2", "1000"),
        );
$show_services = TRUE; 

这在我的表单处理文件中:

if($show_services){
        $amount = number_format($services[$service][1],2);

我收到超过$ 999的任何美元金额项目的错误 - 说该项目不存在。 似乎问题可能在number_format定义中,但我不熟悉php知道如何解决这个问题。这是我为自己的用法购买和修改的代码。除了这一个问题外,它完美无缺。

2 个答案:

答案 0 :(得分:0)

问题是您在顶级阵列级别引用了该服务。你需要引用第二级。

下面的第一个块不起作用,因为您引用的数组的方式与定义的方式不同。 发布更多代码肯定会有帮助吗因为定义原始数组的方式看起来像是一个效率低下的脚本。您似乎可以以不需要循环的方式定义数组。

第二个块显示了如何重新定义数组以使其适用于您的代码。并且它有效,不需要循环。

<?

header( 'content-type: text/plain' );
$services = array(
              array("service1", "500"),
              array("service2", "1000"),
        );

$service = 'service1';

$amount = number_format( $services[$service][1],2 );
echo $amount . PHP_EOL;

$services['service1'] = array("service1", "500");
$services['service2'] = array("service2", "1000");
$service = 'service1';

$amount = number_format( $services[$service][1],2 );

echo $amount;

答案 1 :(得分:0)

如果您想访问这些号码,请使用:

$services[0][1]

或:

$services[1][1]

括号中的第一个数字应该改变,但第二个数字应该始终保持[1]。