Мне кажется, что вы пытаетесь отобразить значения из одного массива в другой по положению, в котором они находятся в массиве, а не по существующему ключу.
Вы можете использовать array_map с нулем в качестве первого параметра, чтобы создать новый массив, состоящий из пар из каждого. (Я добавил print_r отображенного массива ниже, чтобы продемонстрировать структуру данных.)
Затем вы можете просто перебрать пары.
<?php
$one = [ 63 => 2, 123 => 2];
$two = [ 1 => 100, 3 => 110];
$pairs = array_map(null, $one, $two);
print_r($pairs);
foreach($pairs as $pair)
printf("%d = %d\n", $pair[0], $pair[1]);
Вывод:
Array
(
[0] => Array
(
[0] => 2
[1] => 100
)
[1] => Array
(
[0] => 2
[1] => 110
)
)
2 = 100
2 = 110
В качестве альтернативы вы можете использовать функцию array_values в обоих массивах, чтобы переиндексировать их, а затем использовать ключи для ассоциации.
"elt" поле является внешним ключом к элементу в отображении many-many. В объединяющей таблице необходимо видеть два столбца внешнего ключа, идентификатор (для родителя) и elt (для элемента). Можно использовать различные имена, если Вам нравится; это значения по умолчанию.
Спасибо, да, Вы правы с немного большим количеством проигрывания, что я нашел, что, если я явно не называю столбец, оно принимает значение по умолчанию к elt.
<bag name="equipment" table="tb_room_equipment" lazy="false">
<key column="roomID"/>
<many-to-many class="Equipment" column="equipmentID"/>
</bag>
Как здесь, я теперь назвал столбец equipmentID; Если я не сделаю то это назовут elt.