Postingan lainnya
mecari array "terbesar" dan "terbesar dengan nilai yang sama"
array $hasil saya seperti ini
Array (
[24] => 0.29883576167978
[20] => 0.29883576167978
[20,24] => 0.17930145700787
[34] => 0.12390406380914
[26,34] => 0.099123251047315
)
saya mencoba seperti ini
$newArray = array();
$i = 0;
foreach ($hasil as $key => $value) {
$newArray[$i] = $key . '|' . $value;
$i++;
}
for ($i = 0; $i < sizeof($newArray); $i++) {
for ($j = 0; $j < sizeof($newArray) - 1; $j++) {
$n1 = explode("|", $newArray[$j]);
$n2 = explode("|", $newArray[$j+1]);
if (doubleval($n1[1]) < doubleval($n2[1])) {
$temp = $newArray[$j];
$newArray[$j] = $newArray[$j + 1];
$newArray[$j + 1] = $temp;
}
}
}
$idObjeks = array();
$i = 0;
foreach ($newArray as $key) {
$ex1 = explode("|", $key);
$ex2 = explode(",", $ex1[0]);
foreach ($ex2 as $ky) {
$idObjeks[$i] = $ky;
$i++;
}
}
$hasil = array();
foreach ($newArray as $key) {
$ex = explode("|", $key);
$hasil[$ex[0]] = $ex[1];
}
// kayaknya ada yang salah di bagian sini
// saya ingin menyimpan $hasil yang terbesar atau terbesar dengan hasil yang sama
// ketika sata print_r hasilnya tidak yang terbesar dengan hasil yang sama
$sameValue = array();
for ($i = 0; $i < sizeof($hasil) - 1; $i++) {
if (current($hasil) == next($hasil)) {
$sameValue[$i]['key'] = key($hasil);
$sameValue[$i]['value'] = current($hasil);
$sameValue[$i+1]['key'] = key($hasil);
$sameValue[$i+1]['value'] = next($hasil);
} else {
prev($hasil);
$sameValue[$i]['key'] = key($hasil);
$sameValue[$i]['value'] = current($hasil);
break;
}
}
apakah ada yang bisa membantu? atau ada cara lain untuk mencari array "terbesar" dan "terbesar dengan nilai yang sama"? terima kasih.
2
3 Jawaban:
Masih belum paham hehe, ada gambarannya ga, array sebelum dan array hasilnya pengen kaya gmna?
0
array sebelumnya
Array (
[24] => 0.29883576167978
[20] => 0.29883576167978
[20,24] => 0.17930145700787
[34] => 0.12390406380914
[26,34] => 0.099123251047315
)
kemudian pengen array nya jadi seperti ini.
Array (
[24] => 0.29883576167978
[20] => 0.29883576167978
)
intinya mau menyimpan array dengan nilai terbesar saja.
0
akhirnya bisa pakai cara seperti ini
array_intersect_key($hasil, array_flip(array_keys($hasil, max($hasil))));
1