php - 无法删除php中的重复数组值
问题描述
我知道以前有人问过这个问题,或者我可能找不到与整个网站相关的问题和答案。对于数组中重复值的删除过程,我需要一些建议。这是我的代码:
$newarray = array();
foreach($rows as $item) {
if (!in_array($rows, $newarray)) {
$newarray[$item['country_name']]['cityName'][] = $item['city_name'];
}
$newarray[$item['country_name']]['hotelName'][] = $item['hotel_name'];
}
echo '<pre>';
print_r($newarray);
echo '</pre>';
这是我的输出:
Array (
[India] => Array
(
[cityName] => Array
(
[0] => Gurugram
[1] => Trivandrum
[2] => Bengaluru
[3] => Udaipur
[4] => Salcette
[5] => Mumbai
[6] => New Delhi
[7] => Chennai
[8] => Salcette
[9] => Salcette
[10] => Bengaluru
[11] => Chennai
[12] => New Delhi
[13] => Udaipur
[14] => Delhi
[15] => Jaipur
[16] => Jaipur
)
如您所见,返回值中有多个重复值。我需要这样的东西:
Array (
[India] => Array
(
[cityName] => Array
(
[0] => Gurugram
[1] => Trivandrum
[2] => Bengaluru
[3] => Udaipur
[4] => Mumbai
[5] => Chennai
[6] => Salcette
[7] => Chennai
[8] => New Delhi
[9] => Udaipur
[10] => Delhi
[11] => Jaipur
)
解决方案
您可以为此使用array_unique函数
$newarray = array();
foreach($rows as $item) {
if (!in_array($rows, $newarray)) {
$newarray[$item['country_name']]['cityName'][] = $item['city_name'];
}
// because of you array is multidimensional
// you can use array_unique function with array_map searching
$newarray= array_map("unserialize", array_unique(array_map("serialize",$newarray)));
$newarray[$item['country_name']]['hotelName'][] = $item['hotel_name'];
}
echo '<pre>';
print_r($newarray);
echo '</pre>';
推荐阅读
- linux - 无法启动 linux 容器 windows server 2019 与 1809 物理服务器
- informatica - 在 INFORMATICA 表达式转换中附加一列
- r - 如何在 fviz_silhouette 中将颜色更改为除簇号以外的变量
- javascript - 在另一个函数中传递一个函数 React Native
- php - 如何从数组中打印带有空格的文本?
- ssis - 在 SSIS 数据流中使用不同的目标列取消透视
- python - Python ProgrammingError: SQL 语句中未使用所有参数
- nginx - 气隙网络的依赖归档
- javascript - Firebase await db.collection 不进入 catch 语句,永远等待
- c - 如何在 Windows 上使用 PIPE 将 hevc 比特流发送到 ffplay?