Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Нахождение одинаковых элементов в двух массивах и замена в одном (https://javascript.ru/forum/misc/79589-nakhozhdenie-odinakovykh-ehlementov-v-dvukh-massivakh-i-zamena-v-odnom.html)

laimas 25.02.2020 23:47

Цитата:

Сообщение от voraa
По пиэйчпивси это будет

На РНР это будет:

$diff = array_diff($arrS, $arrF);
$diff = array_merge($diff, array_fill(0, count($arrS) - count($diff), 0));


Вот только вопрос - зачем? Если бы данные существовали ради спортивного интереса, тогда ладно, но они что-то описывают, определяют, ..., где-то они и хранятся. А лучшее место для хранения, это база, а если так, то не нулями дополнять надо, а определять полям SQL таблицы значение 0 по умолчанию.

Вообще эта тема очень похожа на то, что тут что-то делается не так, либо что-то лишнее.

Katy93 26.02.2020 00:35

Цитата:

По пиэйчпивси это будет

for ($k = 0; $j < count($aj); $k++) {
$arr2[$aj[$k]] = 0;
}
Теперь работает, только у вас ошибка в цикле, там где условие $k нужно, а не $j.
Цитата:

..., где-то они и хранятся. А лучшее место для хранения, это база, а если так, то не нулями дополнять надо, а определять полям
Конечно это будет хранится в базе просто я упростила, всё. Я уже искала информацию, задавала вопросы на некоторых ресурсах, ответа я так и не получила, никто не понял, чего я хочу. Видимо неправильно объясняла, поэтому пришлось упростить.

laimas 26.02.2020 00:46

Цитата:

Сообщение от Katy93
Конечно это будет хранится в базе просто я упростила, всё.

Так к чему эти циклы, нули ...? Если вы отсекаете "лишнее", дополняя нулями, значит у вас непорядок в базе - определите значение 0 по умолчанию, а все что нужно для записи это $diff = array_diff($arrS, $arrF);

И это единственное, что нужно сделать. Вы же делаете лишнюю бесполезную работу, которую можно заменить одной строкой стандартной функции языка.


Часовой пояс GMT +3, время: 05:31.