Я получаю 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 ;
да они всегда будут одинаковыми выбранными
я надеюсь, что строки нет хранятся в базе данных, потому что это будет дизайн базы данных ужасный.
нет, на самом деле это тоже список id
Вот вам код:
// 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);
}
Если всегда будет одно и то же количество выбранных php.net/manual/en/function.array-chunk.php