#php
#php
Вопрос:
Я получаю 2 массива, первый — это список идентификаторов, которые проверил пользователь, а второй — идентификатор пользователя, который я хочу сохранить в своей базе данных
array(2) {
["id_users"]=> string(6) "2,5,6,"
["selected"]=> string(30) "1,2,2,2,2,1,2,2,2,2,2,1,1,1,1,"
}
Я должен хранить «1,2,2,2,2» для пользователя «2» и «1,2,2,2,2» для пользователя «5» и
«2,1,1,1,1» для пользователя «6»
$list_checked = explode(",", $_GET['selected']);
//$class_name = explode(",", $_GET['class_name']);
$id_user = explode(",", $_GET['id_users']);
$count = count($list_checked);
$count_id = count($id_user);
$count_i = $count - 1;
$count_id_i = $count_id - 1;
$n = $count_i / $count_id_i ;
Комментарии:
1. Если всегда будет одинаковое количество выбранных php.net/manual/en/function . array-chunk.php
2. да, они всегда будут иметь одинаковое количество выбранных
3. я надеюсь, что строки — это не то, что вы храните в базе данных, потому что это был бы ужасный дизайн базы данных.
4. нет, на самом деле это тоже список идентификаторов
Ответ №1:
Вот вам немного кода:
// NOTE, I removed last commas from strings in order to work correctly
$list_checked = explode(",", '1,2,2,2,2,1,2,2,2,2,2,1,1,1,1');
$id_user = explode(",", '2,5,6');
$count = count($list_checked);
$count_id = count($id_user);
// define chunk size as result of division
$chunk_size = $count / $count_id;
// get chunks
$chunks = array_chunk($list_checked, $chunk_size);
// ierate over user and get related chunk by key
foreach ($id_user as $key => $value) {
echo 'ID: ', $value, ', chunk: ', print_r($chunks[$key], 1);
}