php - 如何从php中的数组中删除特定元素
问题描述
我有以下数组
Array
(
[tags] => Array
(
[0] => hello
)
[assignee] => 60b6a8a38cf91900695dd46b
[multiple_assignee] => Array
(
[0] => Array
(
[accountId] => 60b6a8a38cf91900695dd46b
)
[1] => Array
(
[accountId] => 5b39d23d32e26a2de15f174f
)
)
)
我想60b6a8a38cf91900695dd46b
从 multiple_assignee 数组中删除。我尝试过使用以下代码:
if (($key = array_search($this->getUsersHashMapValue($responsiblePartyIds[0]), $mutipleAssignee)) !== false) {
unset($mutipleAssignee[$key]['accountId']);
}
但它并没有删除那个元素。目的是我不想60b6a8a38cf91900695dd46b
在多个受让人数组中重复受让人。
我也尝试过使用以下代码:
foreach($mutipleAssignee as $subKey => $subArray){
if($subArray['accountId'] == $this->getUsersHashMapValue($responsiblePartyIds[0])){
unset($mutipleAssignee[$subKey]);
}
}
但结果是
Array
(
[tags] => Array
(
[0] => hello
)
[assignee] => 60b6a8a38cf91900695dd46b
[multiple_assignee] => Array
(
[1] => Array
(
[accountId] => 5b39d23d32e26a2de15f174f
)
)
)
而不是
[multiple_assignee] => Array
(
[0] => Array
(
[accountId] => 5b39d23d32e26a2de15f174f
)
)
谢谢
解决方案
只需提取accountId
列并搜索即可。然后使用该键:
$key = array_search($this->getUsersHashMapValue($responsiblePartyIds[0]),
array_column($mutipleAssignee, 'accountId'));
unset($mutipleAssignee[$key]);
编辑后,您似乎只想在以下之后重新索引子数组unset
:
$mutipleAssignee = array_values($mutipleAssignee);
推荐阅读
- java - 使用 mockito 和 Junit5 使用参数模拟静态 void 方法
- qt - 需要有关 font.pointSize 和 font.pixelSize 的帮助
- javascript - Firebase 使用 1 个参数调用。预计没有
- excel - 处理前重新格式化 Excel 文档
- mysql - 仅将 MySQL uniq 行增加一个请求
- visual-studio-code - 如何打开这个“控制台”在 VS Code 中安装包?
- security - 如果使用 SSL,是否有必要对 POST 的数据进行哈希处理?
- php - 如何在 PHP 中使用 simple_html_dom 查找视频源 url
- powershell - PowerShell 枚举评估
- visual-studio-code - 如何在 vscode 中删除现有的 jupyter 服务器