هومن
2 سال پیش توسط هومن مطرح شد
2 پاسخ

جلوگیری از ایجاد key توسط تابع asort

سلام، من کد زیررو نوشتم :

$Array = [];
for ($a = 0; $a <= 3; $a++) {
    $Array [] = ['a' => rand(0, 100), 'BaseHolders' => rand(0, 100)];
}
//Result 1
print_r($Array);
echo "\n\n-------\nResult 1 :\n";
asort($Array);
//Result 2
echo "\n\n-------\nResult 2 :\n";
print_r($Array);

و وقتی اجراش می کنم این میشه خروجیم :

Array
(
    [0] => Array
        (
            [a] => 30
            [BaseHolders] => 85
        )

    [1] => Array
        (
            [a] => 90
            [BaseHolders] => 75
        )

    [2] => Array
        (
            [a] => 28
            [BaseHolders] => 44
        )

    [3] => Array
        (
            [a] => 30
            [BaseHolders] => 0
        )

)

-------
Result 1 :

-------
Result 2 :
Array
(
    [2] => Array
        (
            [a] => 28
            [BaseHolders] => 44
        )

    [3] => Array
        (
            [a] => 30
            [BaseHolders] => 0
        )

    [0] => Array
        (
            [a] => 30
            [BaseHolders] => 85
        )

    [1] => Array
        (
            [a] => 90
            [BaseHolders] => 75
        )

)

داخل نتیجه اول آرایه ها key ندارن و به صورت عددی میشه صداشون زد مثلا :
$Array[1]

ولی داخل نتیجه دوم بعد از مرتب سازی آرایه ها key عددی میگیرن!
چطوری کاری کنم که بعد از مرتب سازی key نگیرن ؟


ثبت پرسش جدید
احسان داوری
تخصص : برنامه نویس
@ehsndvr 2 سال پیش مطرح شد
1

سلام

function cmp($a, $b) {
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}
$Array = [];
for ($a = 0; $a <= 3; $a++) {
    $Array [] = ['a' => rand(0, 100), 'BaseHolders' => rand(0, 100)];
}
//Result 1
print_r($Array);
echo "\n\n-------\nResult 1 :\n";
usort($Array , "cmp");
//Result 2
echo "\n\n-------\nResult 2 :\n";
print_r($Array);

باید به جای فانکشن asort از usort و یک تابع مرتب سازی استفاده بکنید


احسان داوری
تخصص : برنامه نویس
@ehsndvr 2 سال پیش مطرح شد
0

اگر جواب بنده مورد قبولتون بوده
میتونید جواب بنده رو به عنوان بهترین پاسخ انتخاب بکنید
@houman


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام