我有一个数组:
$array = array(1,2,3,4,5);
Run Code Online (Sandbox Code Playgroud)
如果我要转储数组的内容,它们将如下所示:
array(5) {
[0] => int(1)
[1] => int(2)
[2] => int(3)
[3] => int(4)
[4] => int(5)
}
Run Code Online (Sandbox Code Playgroud)
当我循环并取消设置某些键时,索引全部被抬起.
foreach($array as $i => $info)
{
if($info == 1 || $info == 2)
{
unset($array[$i]);
}
}
Run Code Online (Sandbox Code Playgroud)
随后,如果我现在做了另一个转储,它看起来像:
array(3) {
[2] => int(3)
[3] => int(4)
[4] => int(5)
}
Run Code Online (Sandbox Code Playgroud)
有没有一种正确的方法来重置数组,所以它的元素再次为零?
array(3) {
[0] => int(3)
[1] => int(4)
[2] => int(5)
}
Run Code Online (Sandbox Code Playgroud) 我使用 PHP 数组来存储有关用户在网站上关注的所有人的数据。这是我如何设置它的示例:
$data = array(
['user1'] => array(
[0] => 'somedata',
[1] => 'moredata',
[2] => array(
[0] => 'Jim',
[1] => 'Bob',
[2] => 'Nick',
[3] => 'Susy',
)
),
);
Run Code Online (Sandbox Code Playgroud)
如您所见,$data[user][2] 列出了所有朋友。该数组具有与键 [0] 和 [1] 完全相同的外观,因为 var_export() 就是这样做的。现在我的问题是这个。当有人取消关注某人时,我使用 unset() 从数组中删除该朋友。因此,如果我想在上面的示例中取消关注 Bob,它将留给 Jim、Nick 和 Susy。
现在唯一的问题是数组键在重命名时没有正确重新编号。因此,一旦 Bob 离开,它就会从 0 变为 2,而不是 Nick 采用 1 的数组键。现在我可以自己想办法做到这一点,但如果有一些专门用于解决此问题的 PHP 函数,我会非常喜欢,即即,将这些数组键重命名为正确的数字顺序。我检查了 sort() 函数,但这似乎是按字母顺序排列数组值而不是键。
php ×2