
https://github.com/yuukanehiro/AlgorithmsDataStructure/blob/main/Search/DuplicatedKeysAndValues.php
たまーに必要になる処理なので関数として残しておく🐱
/**
* 重複した値を返却
*
* @param array $array
* @return array
*/
function searchDuplicatedValue(array $array): array
{
// 要素の重複チェック
$unique_array = array_values(array_unique($array));
if (count($unique_array) !== count($array)) {
// 重複している値を配列で取得
// 重複している値を返却 ex. array_count_values($array): ["xxx" => 1,"yyy" => 2,"zzz" => 2]
// 重複していない値は1なので0となる
$duplicated_array = array_filter(array_count_values($array), function ($v) {
return ($v-1 !== 0);
}); // ["yyy" => 0, "zzz" => 1]
return array_keys($duplicated_array); // ["yyy", "zzz"]
}
return [];
}
/**
* 重複した値のキーと値を返却
*
* @param array $array
* @return array
*/
function searchDuplicatedKeysAndValues(array $array): array
{
$duplicated_array = searchDuplicatedValue($array);
$response = [];
foreach ($duplicated_array as $duplicated_value) {
$keys = array_keys($array, $duplicated_value);
$response[] = [
'keys' => $keys,
'value' => $duplicated_value
];
}
return $response;
}
$array = ['apple', 'apple', 'orange', 'banana', 'banana', 'mikan', 'apple', 'iyokan', 'melon', 'pine', 'pine'];
print_r(searchDuplicatedValue($array));
// Array
// (
// [0] => apple
// [1] => banana
// [2] => pine
// )
print_r(searchDuplicatedKeysAndValues($array));
// Array
// (
// [0] => Array
// (
// [keys] => Array
// (
// [0] => 0
// [1] => 1
// [2] => 6
// )
// [value] => apple
// )
// [1] => Array
// (
// [keys] => Array
// (
// [0] => 3
// [1] => 4
// )
// [value] => banana
// )
// [2] => Array
// (
// [keys] => Array
// (
// [0] => 9
// [1] => 10
// )
// [value] => pine
// )
// )
![Plesk12.5.30 25番で待ちうけさせる status=deferred (connect to example.com[111.xxx.yyy.2]:25: Connection refused)](https://www.yuulinux.tokyo/contents/wp-content/uploads/2017/10/plesk25_201710027_2-150x150.jpg)

![分散分析とF分布表[NOINDEX]](https://www.yuulinux.tokyo/contents/wp-content/uploads/2018/01/bunsan_20181105_1-150x150.jpg)


