А правильно выстроить цикл?
Имеется массив такого вида
Array
(
[0] => Array
(
[ID] => 417
[FIELD_ID] => 79
[QUESTION_ID] => 79
[TIMESTAMP_X] => 09.09.2022 15:10:04
[MESSAGE] =>
[VALUE] =>
[FIELD_TYPE] => text
[FIELD_WIDTH] => 0
[FIELD_HEIGHT] => 0
[FIELD_PARAM] =>
[C_SORT] => 100
[ACTIVE] => Y
)
[1] => Array
(
[ID] => 418
[FIELD_ID] => 79
[QUESTION_ID] => 79
[TIMESTAMP_X] => 09.09.2022 15:10:04
[MESSAGE] =>
[VALUE] =>
[FIELD_TYPE] => text
[FIELD_WIDTH] => 0
[FIELD_HEIGHT] => 0
[FIELD_PARAM] =>
[C_SORT] => 200
[ACTIVE] => Y
)
[2] => Array
(
[ID] => 419
[FIELD_ID] => 79
[QUESTION_ID] => 79
[TIMESTAMP_X] => 09.09.2022 15:10:04
[MESSAGE] =>
[VALUE] =>
[FIELD_TYPE] => text
[FIELD_WIDTH] => 0
[FIELD_HEIGHT] => 0
[FIELD_PARAM] =>
[C_SORT] => 300
[ACTIVE] => Y
)
[3] => Array
(
[ID] => 420
[FIELD_ID] => 79
[QUESTION_ID] => 79
[TIMESTAMP_X] => 09.09.2022 15:10:04
[MESSAGE] =>
[VALUE] =>
[FIELD_TYPE] => text
[FIELD_WIDTH] => 0
[FIELD_HEIGHT] => 0
[FIELD_PARAM] =>
[C_SORT] => 400
[ACTIVE] => Y
)
[4] => Array
(
[ID] => 421
[FIELD_ID] => 79
[QUESTION_ID] => 79
[TIMESTAMP_X] => 09.09.2022 15:10:04
[MESSAGE] =>
[VALUE] =>
[FIELD_TYPE] => text
[FIELD_WIDTH] => 0
[FIELD_HEIGHT] => 0
[FIELD_PARAM] =>
[C_SORT] => 500
[ACTIVE] => Y
)
[5] => Array
(
[ID] => 422
[FIELD_ID] => 79
[QUESTION_ID] => 79
[TIMESTAMP_X] => 09.09.2022 15:10:04
[MESSAGE] =>
[VALUE] =>
[FIELD_TYPE] => text
[FIELD_WIDTH] => 0
[FIELD_HEIGHT] => 0
[FIELD_PARAM] =>
[C_SORT] => 600
[ACTIVE] => Y
)
[6] => Array
(
[ID] => 423
[FIELD_ID] => 79
[QUESTION_ID] => 79
[TIMESTAMP_X] => 09.09.2022 15:10:04
[MESSAGE] =>
[VALUE] =>
[FIELD_TYPE] => text
[FIELD_WIDTH] => 0
[FIELD_HEIGHT] => 0
[FIELD_PARAM] =>
[C_SORT] => 700
[ACTIVE] => Y
)
[7] => Array
(
[ID] => 424
[FIELD_ID] => 79
[QUESTION_ID] => 79
[TIMESTAMP_X] => 09.09.2022 15:10:04
[MESSAGE] =>
[VALUE] =>
[FIELD_TYPE] => text
[FIELD_WIDTH] => 0
[FIELD_HEIGHT] => 0
[FIELD_PARAM] =>
[C_SORT] => 800
[ACTIVE] => Y
)
[8] => Array
(
[ID] => 425
[FIELD_ID] => 79
[QUESTION_ID] => 79
[TIMESTAMP_X] => 09.09.2022 15:10:04
[MESSAGE] =>
[VALUE] =>
[FIELD_TYPE] => text
[FIELD_WIDTH] => 0
[FIELD_HEIGHT] => 0
[FIELD_PARAM] =>
[C_SORT] => 900
[ACTIVE] => Y
)
[9] => Array
(
[ID] => 426
[FIELD_ID] => 79
[QUESTION_ID] => 79
[TIMESTAMP_X] => 09.09.2022 15:10:04
[MESSAGE] =>
[VALUE] =>
[FIELD_TYPE] => text
[FIELD_WIDTH] => 0
[FIELD_HEIGHT] => 0
[FIELD_PARAM] =>
[C_SORT] => 1000
[ACTIVE] => Y
)
[10] => Array
(
[ID] => 427
[FIELD_ID] => 79
[QUESTION_ID] => 79
[TIMESTAMP_X] => 09.09.2022 15:10:04
[MESSAGE] =>
[VALUE] =>
[FIELD_TYPE] => text
[FIELD_WIDTH] => 0
[FIELD_HEIGHT] => 0
[FIELD_PARAM] =>
[C_SORT] => 1100
[ACTIVE] => Y
)
Хочу получить из него таблицу в каждой строке которой должно быть пять [ID] элементов:
<tr>417 418 420 421 422</tr>
<tr>423 424 425 426 427</tr>
Делаю я вот так:
<?
$array = array_chunk($arResult["QUESTIONS"]["q18"]["STRUCTURE"], 5, true);
foreach ($array as $key => $arAnswer)
{
?>
<tr>
<?print_r ($arAnswer["ID"]);?>
</tr>
<?
} ?>
Но вот так ID не выводит, я так понимаю потому что сперва нужно указать что бы цикл проходил по ключам массива
Если сделать вывод без ID:
<?print_r ($arAnswer["ID"]);?>
То вот что выдает:
<tr>
Array
(
[0] => Array
(
[ID] => 164
[FIELD_ID] => 79
[QUESTION_ID] => 79
[TIMESTAMP_X] => 09.09.2022 15:10:04
[MESSAGE] =>
[VALUE] =>
[FIELD_TYPE] => text
[FIELD_WIDTH] => 0
[FIELD_HEIGHT] => 0
[FIELD_PARAM] =>
[C_SORT] => 100
[ACTIVE] => Y
)
[1] => Array
(
[ID] => 418
[FIELD_ID] => 79
[QUESTION_ID] => 79
[TIMESTAMP_X] => 09.09.2022 15:10:04
[MESSAGE] =>
[VALUE] =>
[FIELD_TYPE] => text
[FIELD_WIDTH] => 0
[FIELD_HEIGHT] => 0
[FIELD_PARAM] =>
[C_SORT] => 200
[ACTIVE] => Y
)
[2] => Array
(
[ID] => 419
[FIELD_ID] => 79
[QUESTION_ID] => 79
[TIMESTAMP_X] => 09.09.2022 15:10:04
[MESSAGE] =>
[VALUE] =>
[FIELD_TYPE] => text
[FIELD_WIDTH] => 0
[FIELD_HEIGHT] => 0
[FIELD_PARAM] =>
[C_SORT] => 300
[ACTIVE] => Y
)
[3] => Array
(
[ID] => 420
[FIELD_ID] => 79
[QUESTION_ID] => 79
[TIMESTAMP_X] => 09.09.2022 15:10:04
[MESSAGE] =>
[VALUE] =>
[FIELD_TYPE] => text
[FIELD_WIDTH] => 0
[FIELD_HEIGHT] => 0
[FIELD_PARAM] =>
[C_SORT] => 400
[ACTIVE] => Y
)
[4] => Array
(
[ID] => 421
[FIELD_ID] => 79
[QUESTION_ID] => 79
[TIMESTAMP_X] => 09.09.2022 15:10:04
[MESSAGE] =>
[VALUE] =>
[FIELD_TYPE] => text
[FIELD_WIDTH] => 0
[FIELD_HEIGHT] => 0
[FIELD_PARAM] =>
[C_SORT] => 500
[ACTIVE] => Y
)
)
</tr>
<tr>
Array
(
[5] => Array
(
[ID] => 422
[FIELD_ID] => 79
[QUESTION_ID] => 79
[TIMESTAMP_X] => 09.09.2022 15:10:04
[MESSAGE] =>
[VALUE] =>
[FIELD_TYPE] => text
[FIELD_WIDTH] => 0
[FIELD_HEIGHT] => 0
[FIELD_PARAM] =>
[C_SORT] => 600
[ACTIVE] => Y
)
[6] => Array
(
[ID] => 423
[FIELD_ID] => 79
[QUESTION_ID] => 79
[TIMESTAMP_X] => 09.09.2022 15:10:04
[MESSAGE] =>
[VALUE] =>
[FIELD_TYPE] => text
[FIELD_WIDTH] => 0
[FIELD_HEIGHT] => 0
[FIELD_PARAM] =>
[C_SORT] => 700
[ACTIVE] => Y
)
[7] => Array
(
[ID] => 424
[FIELD_ID] => 79
[QUESTION_ID] => 79
[TIMESTAMP_X] => 09.09.2022 15:10:04
[MESSAGE] =>
[VALUE] =>
[FIELD_TYPE] => text
[FIELD_WIDTH] => 0
[FIELD_HEIGHT] => 0
[FIELD_PARAM] =>
[C_SORT] => 800
[ACTIVE] => Y
)
[8] => Array
(
[ID] => 425
[FIELD_ID] => 79
[QUESTION_ID] => 79
[TIMESTAMP_X] => 09.09.2022 15:10:04
[MESSAGE] =>
[VALUE] =>
[FIELD_TYPE] => text
[FIELD_WIDTH] => 0
[FIELD_HEIGHT] => 0
[FIELD_PARAM] =>
[C_SORT] => 900
[ACTIVE] => Y
)
[9] => Array
(
[ID] => 426
[FIELD_ID] => 79
[QUESTION_ID] => 79
[TIMESTAMP_X] => 09.09.2022 15:10:04
[MESSAGE] =>
[VALUE] =>
[FIELD_TYPE] => text
[FIELD_WIDTH] => 0
[FIELD_HEIGHT] => 0
[FIELD_PARAM] =>
[C_SORT] => 1000
[ACTIVE] => Y
)
)
</tr>
То есть нужно как то указать что бы он брал именно ID у каждого элемента первого массива, а как это сделать не могу понять, пробовал добавить туда еще один цикл то там запутался еще больше
Ответы (2 шт):
Если нужен "иной" вид - приведите пример как именно оно должно быть выведено:
$i = 1
echo "<tr>";
foreach ($array as $key => $arAnswer){
echo "<td>$key</td>"; //<- возможно не то поле и тогда:
// echo "<td>{$arAnswer['ID']}</td>"
echo ($i%5==0?"</tr><tr>":"");
$i++;
}
echo "</tr>";
Если начальным значением задать i=1 а не нулю как изначально было то всё начинает работать как нужно) Владимир, благодарю за помощь!
<?
$i = 1;
echo "<tr>";
foreach ($array as $key => $arAnswer){
echo "<td>{$arAnswer['ID']}</td>"; //<- возможно не то поле и тогда: //echo "<td>{$arAnswer['ID']}</td>"
echo ($i%5==0?"</tr><tr>":"");
$i++;
}
echo "</tr>"; ?>