PHP - массив, не распознающий сумму в долларах с более чем 3 цифрами - PullRequest
0 голосов
/ 20 декабря 2011

В моем файле конфигурации у меня есть службы, определенные следующим образом:

$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 голосов
/ 20 декабря 2011

Если вы хотите получить доступ к номерам, используйте это:

$services[0][1]

или

$services[1][1]

первое число в скобках должно измениться, а второе всегда должно оставаться [1].

0 голосов
/ 20 декабря 2011

Проблема в том, что вы ссылаетесь на сервис на верхнем уровне массива.Вам нужно будет сослаться на второй уровень.

первый блок ниже не работает, потому что вы ссылаетесь на свой массив способом, отличным от того, как он определен. Размещение большего количества кода определенно поможет здесь , потому что способ определения исходного массива выглядит так, как будто это неэффективный скрипт.Похоже, вы могли бы определить массив таким образом, чтобы не требовалось зацикливание.

Второй блок показывает, как переопределить ваш массив, чтобы он работал с вашим кодом.и это работает, цикличность не требуется.

<?

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