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 записей, максимум.