Как использовать «два» счетчика в php в массиве?

#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);
}