我从数据库中获取一个值数组,在这里我得到一个数组,其值如下:
Array ( [6712] => 64.79.197.36:43444 [6712] => 64.79.197.36:43444 [6711] => 64.79.194.56:41113 [6710] => 64.21.47.20:8080 [6709])
Run Code Online (Sandbox Code Playgroud)
其中括号中的数字,如[6712]是在数据库中的"ID"字段..的问题是,在我的剧本我想让它使得每个数组值有我给你第二个关键,它从开始"0"并递增1,如下所示:
Array ( [0][6712] => 64.79.197.36:43444 [1][6712] => 64.79.197.36:43444 [2][6711] => 64.79.194.56:41113 [3][6710] => 64.21.47.20:8080 [4][6709])
Run Code Online (Sandbox Code Playgroud)
这是为了一些数据处理,所以我希望能够有一种方法在我的脚本中以一种有意义的方式跟踪每一个(因为我无法预测mysql id会是什么,因为可能有删除的记录等等所以它并不总是增加1)..
我已经找到了一些通过分配新键来创建新数组的方法,但我想知道它是否可以为1个数组值设置2个键
使用参考资料完全可能.
$result = array ( 6712 => '64.79.197.36:43444',
6711 => '64.79.194.56:41113',
6710 => '64.21.47.20:8080'
);
$i = 0;
foreach($result as $key => $value) {
$result[$i++] = &$result[$key];
}
var_dump($result);
echo '<br />';
$result[0] = '127.0.0.1:80';
var_dump($result);
echo '<br />';
Run Code Online (Sandbox Code Playgroud)
但是你可能会证明有问题.
上面的代码titbit演示了如何设置初始数组,然后为初始数组中的三个值中的每一个分配第二个键.然后,代码修改数组中的单个条目,并演示更改反映在两个键值中;
编辑
如果你想使用foreach(),curr()和其他控制结构元素来操作你在数组中的位置,那么在一个数组中使用这两个键将很麻烦,因为你将两次拾取每个条目.
使用两个数组可能更容易,第二个是指向第一个数组的一系列指针.
$result = array ( 6712 => '64.79.197.36:43444',
6711 => '64.79.194.56:41113',
6710 => '64.21.47.20:8080'
);
$wrkResult = array();
foreach($result as $key => $value) {
$wrkResult[] = &$result[$key];
}
var_dump($result);
echo '<br />';
var_dump($wrkResult);
echo '<br />';
$result[0] = '127.0.0.1:80';
var_dump($result);
echo '<br />';
var_dump($wrkResult);
echo '<br />';
Run Code Online (Sandbox Code Playgroud)
然后你可以使用$ result或$ wrkResult工作,对一个中的值的任何改变都将在另一个中被重新选择; 你可以循环通过一个或另一个,只获得正确数量的结果,而不是两倍,等等.