php - 删除数组特定值相同/唯一的两个维度数组元素(第一个匹配除外)
问题描述
例如,我有一个下面的二维数组,
$a = array(
"one" => array (
"id" => 111,
"name" => "Jhon"
),
"two" => array(
"id" => 222,
"name" => "Adam"
),
"three" => array(
"id" => 111,
"name" => "Mark"
),
"four" => array(
"id" => 125,
"name" => "Jhon"
),
"five" => array(
"id" => 111,
"name" => "Jhon"
),
"six" => array(
"id" => 222,
"name" => "Rock"
),
);
我想删除二维数组值相同/唯一的数组(第一个匹配除外)。例如,我想删除所有id
键值相同的数组(第一个匹配除外)。如,数组id
键值111
(数组计数为 3)和222
(数组计数为 2)。因此,在删除唯一键后id
,结果数组应该如下,
$a = array(
"one" => array (
"id" => 111,
"name" => "Jhon"
),
"two" => array(
"id" => 222,
"name" => "Adam"
),
"four" => array(
"id" => 125,
"name" => "Jhon"
),
);
解决方案
使用此代码完成您的任务
<?php
$a = array(
"one" => array (
"id" => 111,
"name" => "Jhon"
),
"two" => array(
"id" => 222,
"name" => "Adam"
),
"three" => array(
"id" => 111,
"name" => "Mark"
),
"four" => array(
"id" => 125,
"name" => "Jhon"
),
"five" => array(
"id" => 111,
"name" => "Jhon"
),
"six" => array(
"id" => 222,
"name" => "Rock"
),
);
$unique = [];
$final_array = [];
foreach ($a as $value) {
if(in_array($value['id'],$unique)){
continue;
}
else {
$unique[] = $value['id'];
$final_array[] = $value;
}
}
echo "<pre>";
print_r($final_array);
?>
在这里,我使用了一个唯一的命名数组,我在其中放置唯一键并循环遍历数组,如果 id 存在于唯一的则它跳过,否则我将其添加到最终数组中。希望这能解决您的问题。
推荐阅读
- c# - 如何在 Microsoft Fakes 上的通用列表上有效地绑定 IEnumerable 接口
- python-3.x - 为什么我无法使用 mechanize 登录 otter.ai
- c# - 连接到远程数据库
- ubuntu - 从 debian 包 postinstall 脚本启动 GUI 应用程序
- hive - 使用 hive 的随机样本
- java - 有没有一种方法可以在 Java 字符串中引用花括号?
- c - 如何替换一行txt文件?
- javascript - 动态插入 SVG
元素不可见 - swift - 我从搜索栏中得到错误的单元格
- apache-kafka - Kafka Streams:TimeoutException:60000 毫秒后无法更新元数据