有人可以帮我提供一些关于如何递归地遍历数组的代码或指令,并在到达最后一个元素时打印到它的完整路径吗?一个简单的回声将起作用,因为我将使代码适应我正在开发的其他功能.
该函数不需要计算数组维度,因为这个参数将被传递:
例:
$depth = 8;
$array[1][3][5][6][9][5][8][9];
Run Code Online (Sandbox Code Playgroud)
当函数到达第8个元素时,它会打印到它的所有路径:
//print path
'1 -> 3 -> 5 -> 6 -> 9 -> 5 -> 8 -> 9'
Run Code Online (Sandbox Code Playgroud)
正如我所说,只有这种格式的打印才有效,因为我会将代码实现到其他功能中.
数组键可以具有相同的值.对于整个图书来说,显然在同一序列中没有相同的值.
更新:
步行递归功能:
$someArray[1][2][3] = 'end';
$someArray[1][2][6] = 'end';
$someArray[1][3][6] = 'end';
$someArray[4][3][7] = 'end';
function listArrayRecursive(&$array_name, $ident = 0){
if (is_array($array_name)){
foreach ($array_name as $k => &$v){
if (is_array($v)){
for ($i=0; $i < $ident * 10; $i++){ echo " "; }
echo $k . " : " . "<br>";
listArrayRecursive($v, $ident + 1);
}else{ …Run Code Online (Sandbox Code Playgroud) 我有一个系统,当他连接应用程序时,每隔2到5秒就会ping一次数据库.根据他的连接,ping时间范围可能更大,如10秒左右.
例:
Pings: 1,4,6,8,9,12,16,20,50,180,187,189,200,203,206,210 ...
Run Code Online (Sandbox Code Playgroud)
我想运行一个查询来获取ping之间不超过1分钟的范围,对它们进行分组,这样我就可以判断用户连接了多长时间,并保存到新表中,如:
Connections table:
user: X | start_date: 1 | end_date: 50 | duration: 49
user: X | start_date: 180 | end_date: 210 | duration: 30
Run Code Online (Sandbox Code Playgroud)
由于ping,50,180,...超过1分钟,在那里被查询组所忽视.
ping存储为时间戳,因此可以轻松转换为日期,从最后一次ping到第一次ping的范围将为我提供会话持续时间.
反正在MySQL查询中有没有呢?有帮助吗?
编辑:添加ping历史模式
id int(11)
user_id int(11)
ping_timestamp int(11)
Run Code Online (Sandbox Code Playgroud)
谢谢,
是否有必要返回任何值或是否提高速度?有时它需要编写不必返回值的函数,有些只是做一组函数或回显一些东西.返回值是否会改善'某事'?,返回true或返回false?
需要帮助基于相同的ID连接两个表.
表格1:
id_1 | id_2
Run Code Online (Sandbox Code Playgroud)
表2:
id | name
Run Code Online (Sandbox Code Playgroud)
我需要一个查询,其中查找表2字段id上的id_1并返回字段名称,并在表2字段id上查找id_2并返回字段名称.
一个例子是:
表格1:
1 | 2
Run Code Online (Sandbox Code Playgroud)
表2:
1 | Joe
2 | Michael
Run Code Online (Sandbox Code Playgroud)
回归将是:
Joe | Michael
Run Code Online (Sandbox Code Playgroud)
谢谢,
反正有没有阻止var_dump在类中打印私有变量?我得到了DBPASS的私有变量,使用时肯定不会打印
var_dump($this->db);
Run Code Online (Sandbox Code Playgroud)
如
["db_host:private"]=> string(9) "localhost" ...user, pass, etc ...
Run Code Online (Sandbox Code Playgroud)