Я потратил часы, пытаясь получить эти ключи массива в переменные, но все, что я пытаюсь, не работает - PullRequest
0 голосов
/ 21 марта 2011

У меня есть массив всех возможных комбинаций значений, немного похоже на определение того, какие денежные значения я могу получить только с определенными монетами. Теперь у меня есть массив, но большая часть полезных данных - это ключи, а не значения.

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

Я планирую выводить на отдельные радиокнопки примерно так:

foreach($array as $arr)
{
    echo '<input type="radio" name="name" value="'.$arr[$total].'">';
    foreach($arr[denom] as $index => $d)
    {
        echo $d[qty][$index].' x '.$d[denom][$index].' = '.($qty[$index]*$denom[$index]).'<br>';
    }
}

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

Array
(
    [2] => Array
        (
            [total] => 105
            [denom] => Array
                (
                    [0] => 105
                )

            [qty] => Array
                (
                    [0] => 1
                )

        )

    [3] => Array
        (
            [total] => 210
            [denom] => Array
                (
                    [0] => 105
                )

            [qty] => Array
                (
                    [0] => 2
                )

        )

    [4] => Array
        (
            [total] => 300
            [denom] => Array
                (
                    [0] => 300
                )

            [qty] => Array
                (
                    [0] => 1
                )

        )

    [5] => Array
        (
            [total] => 405
            [denom] => Array
                (
                    [0] => 300
                    [1] => 105
                )

            [qty] => Array
                (
                    [0] => 1
                    [1] => 1
                )

        )

    [6] => Array
        (
            [total] => 500
            [denom] => Array
                (
                    [0] => 500
                )

            [qty] => Array
                (
                    [0] => 1
                )

        )

    [7] => Array
        (
            [total] => 605
            [denom] => Array
                (
                    [0] => 500
                    [1] => 105
                )

            [qty] => Array
                (
                    [0] => 1
                    [1] => 1
                )

        )

Ответы [ 2 ]

0 голосов
/ 21 марта 2011

Постоянные нечисловые индексы массива должны записываться как любая другая строка, то есть заключаться в кавычки.

foreach($array as $arr) {
    echo '<input type="radio" name="name" value="'.$arr['total'].'">';
    foreach($arr['denom'] as $index => $d){
        for ($j = 0;$j < count($denom);$j++) {
            echo $d['qty'][$j].' x '.$d['denom'][$j].' = ';
            echo ($d['qty'][$j]*$d['denom'][$j]) . '<br>';
        }
    }
}
0 голосов
/ 21 марта 2011

Сначала отформатируйте ваш массив, как это в моем коде, добавьте 6, 7 элементов массива.Я изменяю для цикла тоже.

<?php
$array = array(2 => array('total' => 105, 'denom' => array(0 => 105), 'qty' => array(0 => 1)),
                             3 => array('total' => 210, 'denom' => array(0 => 105), 'qty' => array(0 => 2)),
                             4 => array('total' => 300, 'denom' => array(0 => 300), 'qty' => array(0 => 1)),
                             5 => array('total' => 405, 'denom' => array(0 => 300, 1 => 105), 'qty' => array(0 => 1, 1 => 1)),
                             );

foreach($array as $arr)
{
//var_dump($arr);
    echo '<input type="radio" name="name" value="'.$arr['total'].'">';
    foreach($arr['denom'] as $index => $d)
    {
        echo $arr['qty'][$index].' x '.$d.' = '.($arr['qty'][$index]*$d).'<br>';
    }
}

?>
...