相关疑难解决方法(0)

在取消设置元素后重新生成数组键

我有一个数组:

$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

168
推荐指数
4
解决办法
11万
查看次数

PHP - 取消设置值后重新编号数组键

我使用 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

5
推荐指数
2
解决办法
6217
查看次数

标签 统计

php ×2