значения массива, которые автоматически увеличиваются на заданное значение (например, если 1st будет echo $ myarray [5]; следующим будет echo $ myarray [5 + 5]; так что на самом деле $ myarray [10];) - PullRequest
0 голосов
/ 06 апреля 2020

Получил массив, подобный этому.

Array
(
    [1] => Array
        (
            [0] => Order Number
            [1] => Item 1 Colour
            [2] => Buyer Name
            [3] => Item 1 Name
            [4] => Item 1 Variation
        )

    [2] => Array
        (
            [0] => Order Number
            [1] => Item 1 Colour
            [2] => Buyer Name
            [3] => Item 1 Name
            [4] => Item 1 Variation
            [5] => Order Number
            [6] => Item 2 Colour
            [7] => Buyer Name
            [8] => Item 2 Name
            [9] => Item 2 Variation

        )

    [3] => Array
        (
            [0] => Order Number
            [1] => Item 1 Colour
            [2] => Buyer Name
            [3] => Item 1 Name
            [4] => Item 1 Variation
            [5] => Order Number
            [6] => Item 2 Colour
            [7] => Buyer Name
            [8] => Item 2 Name
            [9] => Item 2 Variation
            [10] => Order Number
            [11] => Item 3 Colour
            [12] => Buyer Name
            [13] => Item 3 Name
            [14] => Item 3 Variation

        )
}

Это показывает 3 фиктивных ордера, и в этом примере у первого ордера есть 1 предмет, у второго порядка 2 предмета, а у третьего порядка 3 предмета. как вы можете видеть, чем больше элементов добавлено, тем больше становится массив для этого элемента, и числа всегда увеличиваются в установленном количестве блоков. ie заголовок для элемента один в порядке 2 в приведенном выше примере равен [3], затем для элемента 2 он равен [8] (так же, как и в предыдущем случае плюс 5), а затем в примере порядка 3 его [3], [8] & [13] так что, в основном, всегда плюс 5 от предыдущего числа ref

Так что может быть способ вывести значение плюс 5 из предыдущего значения и продолжать делать это вообще

как

$item1title = $myarray[5];
$item2title = $item1title[+5];
$item3title = $item2title[+5];

echo $item1title; 
echo $item2title; 
echo $item2title; 

1 Ответ

2 голосов
/ 06 апреля 2020

Вот краткий пример того, как вы можете построить свой массив более полезным способом. Как уже упоминалось в комментариях, мы создаем основной массив заказов. Внутри этого массива у нас есть запись для каждого заказа. Каждый из этих заказов также является массивом и содержит детали заказа, а также элементы. Элементы содержатся в массиве, причем каждый элемент является записью в массиве. Каждый элемент сам по себе также является массивом, в котором записи являются деталями элемента.

$orders = array(
    array(
        "orderNum" => 123,
        "buyerId" => 111,
        "items" => array(
            array(
                "id" => 321,
                "name" => "Item One",
                "color" => "red"
            )
        )
    ),
    array(
        "orderNum" => 456,
        "buyerId" => 444,
        "items" => array(
            array(
                "id" => 321,
                "name" => "Item One",
                "color" => "red"
            ),
            array(
                "id" => 356,
                "name" => "Item Two",
                "color" => "green"
            )
        )
    ),
    array(
        "orderNum" => 789,
        "buyerId" => 765,
        "items" => array(
            array(
                "id" => 321,
                "name" => "Item One",
                "color" => "red"
            ),
            array(
                "id" => 356,
                "name" => "Item Two",
                "color" => "green"
            ),
            array(
                "id" => 999,
                "name" => "Item Three",
                "color" => "blue"
            )
        )
    )
);

А вот краткий пример того, как вы можете получить доступ к заказам и элементам

foreach($orders as $order)
{
    echo "Order number: " . $order["orderNum"] . "\r\n";

    foreach($order["items"] as $item)
    {
        echo "Item Name: " . $item["name"] . "\r\n";
    }
    echo "\r\n";
}

DEMO

...