PHP, правильно разделить многомерный массив и использовать его в цикле

Я застрял на этой задаче - разделить массив на две части и обработать его. Ситуация выглядит следующим образом:


 $selectCity = "select districtName from telegramCity limit 12 offset 0";
$result = mysqli_query($this->connection, $selectCity);

while ($row = mysqli_fetch_assoc($result)) {

    $this->buttons[] = [[

        "text" => $row["districtName"],

        "callback_data" => strval(0)
    ],[
        "text" => $row["districtName"],

        "callback_data" => strval(0)
    ]];
}`


Как видите, есть два одинаковых массива, каждый с 12 записями. Но мне нужно сделать так, чтобы у каждого было 6. Пожалуйста, расскажите, пожалуйста, как это можно сделать> <

Мне не нужны дубликаты массивов. У меня есть список из 12 городов, и мне нужно поместить их в Telegram inline_button, где должно быть 2 столбца, в каждом по 6 городов

1 ответ

Решение

Вы можете получить другой раз внутри цикла while:

$selectCity = "select districtName from telegramCity limit 12 offset 0";
$result = mysqli_query($this->connection, $selectCity);

// 1st fetch
while ($row = mysqli_fetch_assoc($result)) {

    $data1 = [
        "text" => $row["districtName"],
        "callback_data" => strval(0)
    ];

    // prepare an empty array, in case of there is no more results
    $data2 = ['text'=>'', 'callback_data'=> strval(0)] ;

    // 2nd fetch, and put in $data2
    if ($row = mysqli_fetch_assoc($result)) {
      $data2["text"] = $row["districtName"];
    }

    // fill your final array using the 2 arrays
    $this->buttons[] = [$data1, $data2];
}

Массив $this->buttons будет содержать 6 записей, максимум.

Другие вопросы по тегам