首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何操作数组键并重新排序键?

如何操作数组键并重新排序键?
EN

Stack Overflow用户
提问于 2022-09-19 06:18:58
回答 2查看 72关注 0票数 -1

大家好,我有一个问题,我是一个新程序员,缺乏基本的数组对象操作

我有一个情况,我需要删除数组中的数据,但我需要重新排列键的编号,如1, 2 ,3,如果我删除2,数字3应该是2。

代码语言:javascript
运行
复制
$user_list = [
"user_1" => ["user_id" => 1234],
"user_2" => ["user_id" => 1324],
"user_3" => ["user_id" => 3321]
];

如果我删除number2,数据应该是这样的

代码语言:javascript
运行
复制
$user_list = [
"user_1" => ["user_id" => 1234],
"user_2" => ["user_id" => 3321]
];

我已经像这样编码了

代码语言:javascript
运行
复制
$user_list = [
"user_1" => ["user_id" => 1234],
"user_2" => ["user_id" => 1324],
"user_3" => ["user_id" => 3321]
];

foreach($user_list as $key => $value){
if($value["user_id"] == $user_id){
unset($key);
}
}

我如何重新排列它?,我试着学习到足够深,但我现在被困住了

EN

回答 2

Stack Overflow用户

发布于 2022-09-19 06:51:47

根据我对您的问题的理解,我认为您希望删除特定元素的值,而不是关键。相反,您希望将特定键的值替换为关联数组的下一个键的值,以此类推,最后删除关联数组的最后一个键。由此,我得出了以下解决方案:

代码语言:javascript
运行
复制
$arr1 = $user_list = [
"user_1" => "1234",
"user_2" => "1324",
"user_3" => "3321"
];
$keys = array_keys($arr1);

$searchKey = "user_2";
$startIndex = array_search($searchKey, $keys);
for($i = $startIndex; $i < count($keys) - 1; $i++){
    $arr1[$keys[$i]] = $arr1[$keys[$i+1]];
}
unset($arr1[$keys[count($keys) - 1]]);
print_r($arr1);
票数 0
EN

Stack Overflow用户

发布于 2022-09-21 05:12:23

我已经找到了一个比@Varad更简单的解决问题的方法,答案是工作,但是如果你对它有了新的理解,这就是我的代码。

代码语言:javascript
运行
复制
            $_key = 1;

            $dataTemp = array();

            foreach ($getDataFirebase['user_list'] as $key => $value) {

                if ($params['user_id'] == $value['user_id']) {
                    unset($getDataFirebase['user_list'][$key]);
                }

                if ($params['user_id'] != $value['user_id']) {
                    $dataTemp['user_' . $_key] = $value;
                    $_key++;
                }
            }

我遇到的问题是将$getDataFirebase‘’user_list‘的键更改为新的键,并将其组织起来,因此,只有键更改后,我才创建一个新变量来存储user_list及其完成的新结构数据。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73769191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档