我將解釋:我有一個套接字socket.php文件,該文件將為每個用戶添加一個連接,以便該用戶具有來自不同設備的多個連接。$clients[] = $socketChange; // array_push($clients,$socketChange); // 505$end = key (array_slice ($clients, -1, 1, TRUE)); // extract 505$userConexion [$userId] [] = $end; // add to clientID socket 505您要做的是將每個連接添加到客戶端陣列,然后最后添加的套接字將其分配給相應的用戶。因此用戶可以在不同設備上進行多個會話,并且總計將實時接收信息?,F(xiàn)在我的問題是...我如何控制位置,即,如果用戶連接1k了用戶編號1001并與用戶斷開連接,$ clients他將向我$ clients [1001]展示如何在不刪除已連接用戶的情況下重新啟動計數(shù)器。我刪除了客戶端套接字,并unset() array_shift()重新排序了錯誤的$clients套接字。例子:$clients[0] = resource 0;$clients[1,433] = empty;$clients[434] = resource 434;$clients[435] = resource 435;$clients[436,450] = empty;$clients[451] = resource 435;$clients[452,999] = empty;$clients[1000] = resource 1000;新的連接1001 添加到空位置。例子:<?php $a1 = array();$a2 = array();for ($i=1; $i < 4 ; $i++) { $a1[] = array("hello{$i}" => "hello{$i}"); $a2[] = array("hello{$i}" => "hello{$i}");}echo "<pre>";unset($a1[1]);unset($a2[1]);$a1[] = array("hello11" => "hello11");array_push($a2, array("hello11" => "hello11"));print_r($a1); // 0,2,3print_r($a2); // 0,2,3// need insert in position empty in this example `1`.
1 回答

UYOU
TA貢獻1878條經(jīng)驗 獲得超4個贊
我不確定要了解您的問題,但是如果要將新連接的數(shù)據(jù)添加到數(shù)組的第一個未占用索引中,可以執(zhí)行以下操作:
for($i=0; $i<count($clients)+1; $i++) {
if(!isset($clients[$i]) {
$clients[$i] = resource 1001;
break;
}
}
如果該索引仍然存在于數(shù)組中并且不再具有任何值,請使用empty($clients[$i])代替!isset($clients[$i])。
- 1 回答
- 0 關注
- 166 瀏覽
添加回答
舉報
0/150
提交
取消