Для правильного вопроса надо знать половину ответа
1000 / (10 + 7 + 3) = 50
10 * 50 = 500
7 * 50 = 350
3 * 50 = 150
Если после округления остаются элементы, добавьте их по одному начиная с первого массива.
Если после округления не хватает элементов, удалите их из массивов, начиная с первого.
Для правильного вопроса надо знать половину ответа
Сильно сомневаюсь, что бесконечно. У вас написано полное декартово произведение таблиц. Значит число строк на выходе будет равняться произведению числа строк в первой таблице на число строк во второй таблице.
Для правильного вопроса надо знать половину ответа
Не стоит передавать аргументы по ссылке без реальной на то необходимости.
А чревато это изменением значений аргументов внутри функции и использованием незапланированно изменённых значений после возврата из функции.
Ну и константы не сможете передать в таких аргументах.
Для правильного вопроса надо знать половину ответа
Если это JSON'ы локальные, то держать их в базе данных.
Если они берутся с удалённого сервера, то кэшировать их в БД, периодически загружая их туда отдельным скриптом.
Для правильного вопроса надо знать половину ответа
Зависит от того, где и что должно возвращаться. Можно как $var[0] ?? null. А в идеале вообще не должно быть обращений к несуществующим элементам массива.
Для правильного вопроса надо знать половину ответа
func_get_args возвращает копии переданных аргументов, так же, как и func_get_arg.
Само собой, изменения в копии никак не отразятся на самих аргументах.