Intereting Posts

Как я могу отправить весь массив из цикла php?

У меня есть сервер LDAP, где у меня есть все зарегистрированные пользователи. Существует более 3000 пользователей, и LDAP имеет ограничение 1000 записей для одного результата поиска. Мне нужно, чтобы все пользователи были в одном «массиве» для json и администрирования и так далее.

Есть мой код для результата поиска более 1000 записей:

$bind = ldap_bind($ds, $dn, $ldapconfig['password']); $pageSize = 100; $cookie = ''; $i = 0; $attributes = array("email", "verificationHash", "gn", "sn"); do { ldap_control_paged_result($ds, $pageSize, true, $cookie); $filter = '(&(objectClass=Client))'; $result = ldap_search($ds, $baseDN, $filter, $attributes); $entries = ldap_get_entries($ds, $result); array_shift( $entries ); $usersJSON = json_encode( $entries ); header('Content-Type: application/json'); echo $usersJSON; // return all users from ldap (over 3000) ldap_control_paged_result_response($ds, $result, $cookie); } while($cookie !== null && $cookie != ''); // return array for javascript $output = json_encode( array( 'status' => true, 'text' => 'Something', 'data' => $entries ) ); die($output); 

На front-end мне нужен целый массив, но я получаю только первые 100 записей. Как я могу разделить этот результат циклов на один массив переменных?

мне кажется, что вы переписываете свой массив $entries на каждой итерации новыми данными. Поэтому я бы сделал что-то вроде этого:

 … $entries = array(); do { … $entries = array_merge(ldap_get_entries($ds, $result), $entries); … } while(…) unset($entries['count']); … не … $entries = array(); do { … $entries = array_merge(ldap_get_entries($ds, $result), $entries); … } while(…) unset($entries['count']); … 

array_merge на помощь;)