我想要像这样保存最大值和最大值相同的数组。
array:5 [▼
24 => 0.37647133759351
20 => 0.37647133759351
"20,24" => 0.22588280255611
34 => 0.011763621730179
"26,34" => 0.0094108973841436
]
因为24
和20
是最大且具有相同的值,所以使用这种方式将它们保存到数据库中。
$hasilInsert = array();
foreach ($sameValue as $key => $value) {
$hasilInsert = array(
'id_wi' => $wisatawan->id,
'hasil' => $value['key'],
'nilai' => $value['value']
);
$xy = HasilWisataTemp::insert($hasilInsert);
}
如何处理? 谢谢。
答案 0 :(得分:1)
使用max()
找到最高值,然后array_keys()
选择具有该值的键,然后array_flip()
和array_intersect_key()
以帮助返回数组以前的结构。
...因此
$result = array_intersect_key( $array, array_flip( array_keys( $array, max( $array ) ) ) );
将为您提供此结果,以便您迭代并插入数据库...
Array
(
[24] => 0.37647133759351
[20] => 0.37647133759351
)
如果您想获得的最大重复条目,请先使用它...
$duplicates = array_intersect( $array, array_diff_assoc( $array, array_unique( $array ) ) );
在致电之前...
$result = array_intersect_key( $duplicates, array_flip( array_keys( $duplicates, max( $duplicates ) ) ) );