Sort thì mình làm được nhưng để lấy ra vị trí index của 100 số đó mà ko
làm mất index thì mình chưa nghĩ ra cách nào hiệu quả nhất. Có cách nào
chạy 1->2 vòng for mà get ra được 100 index được ko nhỉ (mình bị áp lực
chỗ ko được clone ra nhiều array khác hoặc chạy for quá nhiều lần vì
mình xử lý với số lượng array như vậy khá thường xuyên).
Mong được các bác chỉ giáo (ý tưởng thôi cũng được ạ - mà có code demo
khúc for này thì dễ hiểu hơn :))
Thanks cả nhà nhiều.
--
Bạn nhận được thư này vì bạn đã được đăng ký vào nhóm Google Groups "PHPVietnam".
Để đăng bài lên nhóm này, hãy gửi email đến phpvi...@googlegroups.com.
Để hủy đăng ký khỏi nhóm này, hãy gửi email tới phpvietnam+unsubscribe@googlegroups.com.
Để biết tùy chọn khác, hãy truy cập nhóm này tại http://groups.google.com/group/phpvietnam?hl=vi.
arsort($array_numbers);$max_100_numbers = array_slice($array_numbers, 0, 100);
Để hủy đăng ký khỏi nhóm này, hãy gửi email tới phpvietnam+...@googlegroups.com.
thank anh onam...@gmail.com đã chia sẻ
> >> Để hủy đăng ký khỏi nhóm này, hãy gửi email tới phpvietnam+unsubscribe@**
> >> googlegroups.com <phpvietnam%2Bunsu...@googlegroups.com>.
> >> Để biết tùy chọn khác, hãy truy cập nhóm này tại
> >>http://groups.google.com/**group/phpvietnam?hl=vi<http://groups.google.com/group/phpvietnam?hl=vi>
> >> .
>
> > --
> > Bạn nhận được thư này vì bạn đã được đăng ký vào nhóm Google Groups
> > "PHPVietnam".
> > Để đăng bài lên nhóm này, hãy gửi email đến phpvi...@googlegroups.com.
> > Để hủy đăng ký khỏi nhóm này, hãy gửi email tới
> > phpvietnam+...@googlegroups.com.
> > Để biết tùy chọn khác, hãy truy cập nhóm này tại
> >http://groups.google.com/group/phpvietnam?hl=vi.
>
> --
> Best regards
> *Đỗ Nam Khánh
> *_________________________________
On 24/04/2012 08:52, Nam Khanh Do wrote:
> Mình ko biết thuật toán nhưng nếu dùng PHP để làm thì bạn chỉ cần 2
> dòng sau là giải quyết được vấn đề :D
>
> arsort($array_numbers);
> $max_100_numbers = array_slice($array_numbers, 0, 100);
>
>
> 2012/4/24 Duy-Dinh Trinh (Mr.) <viet...@gmail.com
> <mailto:viet...@gmail.com>>
>
> moi item them 1 bien luu gia tri index goc, vi vay khi sort thi
> minh tham chieu index goc ban dau. It is ok?
>
>
>
> 2012/4/24 dqvn...@gmail.com <mailto:dqvn...@gmail.com>
> <dqvn...@gmail.com <mailto:dqvn...@gmail.com>>
>
> Mình có 1 array trên PHP (cỡ 5000 items chứa số double dạng
> "0.45678912345")
> Giờ mình muốn tìm ra trong array đó 100 số lớn nhất (trả về
> index của 100 vị trí đó trong array trên)
>
> Sort thì mình làm được nhưng để lấy ra vị trí index của 100 số
> đó mà ko làm mất index thì mình chưa nghĩ ra cách nào hiệu quả
> nhất. Có cách nào chạy 1->2 vòng for mà get ra được 100 index
> được ko nhỉ (mình bị áp lực chỗ ko được clone ra nhiều array
> khác hoặc chạy for quá nhiều lần vì mình xử lý với số lượng
> array như vậy khá thường xuyên).
>
> Mong được các bác chỉ giáo (ý tưởng thôi cũng được ạ - mà có
> code demo khúc for này thì dễ hiểu hơn :))
>
> Thanks cả nhà nhiều.
>
> --
> Bạn nhận được thư này vì bạn đã được đăng ký vào nhóm Google
> Groups "PHPVietnam".
> Để đăng bài lên nhóm này, hãy gửi email đến
> phpvi...@googlegroups.com <mailto:phpvi...@googlegroups.com>.
> Để hủy đăng ký khỏi nhóm này, hãy gửi email tới
> phpvietnam+...@googlegroups.com
> <mailto:phpvietnam%2Bunsu...@googlegroups.com>.
> Để biết tùy chọn khác, hãy truy cập nhóm này tại
> http://groups.google.com/group/phpvietnam?hl=vi.
>
>
> --
> Bạn nhận được thư này vì bạn đã được đăng ký vào nhóm Google
> Groups "PHPVietnam".
> Để đăng bài lên nhóm này, hãy gửi email đến
> phpvi...@googlegroups.com <mailto:phpvi...@googlegroups.com>.
> Để hủy đăng ký khỏi nhóm này, hãy gửi email tới
> phpvietnam+...@googlegroups.com
> <mailto:phpvietnam%2Bunsu...@googlegroups.com>.
> Để biết tùy chọn khác, hãy truy cập nhóm này tại
> http://groups.google.com/group/phpvietnam?hl=vi.
>
>
>
>
> --
> Best regards
> *Đỗ Nam Khánh
> *_________________________________
<?php
function cmp($a, $b) {
if ($a == $b) {
return 0;
}
return ($a > $b) ? -1 : 1;
}
//create sample data
$data = array();
for ($i = 0; $i < 5000; $i++) {
$data[$i] = rand(444444, 999999) / 999999;
}
//sort
uasort($data, 'cmp');
//top100
$top100 = array_slice($data, 0, 100);
var_dump($top100);
?>
<?php
function cmp($a, $b) {
$valuea = array_pop($a);
$valueb = array_pop($b);
if ($valuea == $valueb) {
return 0;
}
return ($valuea > $valueb) ? -1 : 1;
}
//create sample data
$data = array();
for ($i = 0; $i < 5000; $i++) {
$data[$i] = array($i => rand(444444, 999999) / 999999);
}
//sort
uasort($data, 'cmp');
//top100
$top100 = array_slice($data, 0, 100);
var_dump($top100);
?>