- 
	
			
				
					October 16th, 2019, 12:20
				
			
			
				
					#1
				
				
				
			
	 
	
		
			
			
				عضو انجمن
			
			
			
			
			
			
				
			
			 
			
				
				
				
				
				
					    
				
			
		 
		
			
				
				
				
					
 مرتب سازی آرایه های چند بعدی در php
				
				
						
							
							
						
						
				
					
						
							
مرتب سازی آرایه های چند بعدی در PHP
منظور از آرایه های چند بعدی در اینجا آرایه هایی است که هر آیتم آن  نشان دهنده یک موجودیت مشخص دارای چندین ویژگی باشد. مثلاً فرض کنید آرایه  ای دارید که کاربران سایت شما را مشخص میکند؛ هر آیتم آن که نشان دهنده یک  کاربر است شامل نام، ایمیل و سن می باشد.
حال ما میخواهیم این لیست این اعضا را با توجه به سن و با ترتیبی خاص مرتب کنیم.
    برای چنین مرتب سازی هایی تابع از پیش تعریف شده ای در زبان PHP  وجود ندارد و می بایست با خلاقیت و استفاده از چند حلقه و توابع ساده ای  مشابه توابعی که در این مقاله گفته شد، مرتب سازی چنین آرایه هایی را انجام  دهیم.
تابع زیر آرایه مورد نظر را با توجه به اندیس ورودی مرتب سازی می کند.  ورودی اول مربوط به آرایه , ورودی دوم مربوط به اندیس ای است که باید بر  اساس آن مرتب سازی صورت گیرد و بخش سوم صعودی یا نزولی بودن ترتیب نتایج  است(SORT_ASC, SORT_DESC). به مثالها توجه کنید:
	کد:
	function array_sort($array, $on, $order = SORT_ASC)
{
    $new_array = array();
    $sortable_array = array();
    if (count($array) > 0)
    {
        foreach ($array as $k => $v)
        {
            if (is_array($v))
            {
                foreach ($v as $k2 => $v2)
                {
                    if ($k2 == $on)
                    {
                        $sortable_array[$k] = $v2;
                    }
                }
            } else
            {
                $sortable_array[$k] = $v;
            }
        }
        switch ($order)
        {
            case SORT_ASC:
                asort($sortable_array);
                break;
            case SORT_DESC:
                arsort($sortable_array);
                break;
        }
        foreach ($sortable_array as $k => $v)
        {
            $new_array[$k] = $array[$k];
        }
    }
    return $new_array;
}
 
 مثال:
	کد:
	
 $people = array(
    12345 => array(
        'id' => 12345,
        'first_name' => 'Joe',
        'surname' => 'Bloggs',
        'age' => 23
    ),
    12346 => array(
        'id' => 12346,
        'first_name' => 'Adam',
        'surname' => 'Smith',
        'age' => 18
    ),
    12347 => array(
        'id' => 12347,
        'first_name' => 'Amy',
        'surname' => 'Jones',
        'age' => 21
    )
);
print_r(array_sort($people, 'age', SORT_DESC)); // Sort by oldest first
print_r(array_sort($people, 'surname', SORT_ASC)); // Sort by surname
 
خروجی مثال:
	کد:
	
/*
Array
(
    [12345] => Array
        (
            [id] => 12345
            [first_name] => Joe
            [surname] => Bloggs
            [age] => 23
        )
 
    [12347] => Array
        (
            [id] => 12347
            [first_name] => Amy
            [surname] => Jones
            [age] => 21
        )
 
    [12346] => Array
        (
            [id] => 12346
            [first_name] => Adam
            [surname] => Smith
            [age] => 18
        )
 
)
Array
(
    [12345] => Array
        (
            [id] => 12345
            [first_name] => Joe
            [surname] => Bloggs
            [age] => 23
        )
 
    [12347] => Array
        (
            [id] => 12347
            [first_name] => Amy
            [surname] => Jones
            [age] => 21
        )
 
    [12346] => Array
        (
            [id] => 12346
            [first_name] => Adam
            [surname] => Smith
            [age] => 18
        )
 
)
*/
 مرجع: php.net
						
					 
					
				 
			 
			
			
				
				
				
					 
				
				
					codebox.ir | تلفن: ٠٢١-٩١٦٩٠٤٢١ | آدرس : شیراز، شهرک خبازان، خیابان شهید سعید ماهر، دفتر کدباکس
ما را دنبال کنید: ID : @codebox_ir
 
				
				
			 
			
			
		 
	 
		
	
 
- 
    
    
    
    
    
        
            تعداد تشکر ها از CodeBox به دلیل پست مفید 
        
    
    
         
     
 
		
		- 
		
			
						
						
							October 16th, 2019 12:20
						
					
					
						
							 # ADS
						
					
			
			
			
					
						
			
						
							
								
									
								
							
					
					
			
			
				
			
		 
		
	
- 
	
			
				
					October 16th, 2019, 12:25
				
			
			
				
					#2
				
				
				
			
	 
	
		
		
			
				
				
				
					
 پاسخ : مرتب سازی آرایه های چند بعدی در php
				
				
						
						
				
					
						
							سلام ایا این در php7 و php5 یکسان هست یا باید تغییراتی بدیم؟
						
					 
					
				 
			 
			
			
		 
	 
		
	
 
- 
    
 
			
	
- 
	
			
				
					October 17th, 2019, 12:11
				
			
			
				
					#3
				
				
				
			
	 
	
		
			
			
				عضو انجمن
			
			
			
			
			
			
				
			
			 
			
				
				
				
				
				
					    
				
			
		 
		
			
				
				
				
					
 پاسخ : مرتب سازی آرایه های چند بعدی در php
				
				
						
						
							
						
				
					
						
							
	
		
			
			
				
					
 نوشته اصلی توسط 
mashiat
					
				 
				سلام ایا این در php7 و php5 یکسان هست یا باید تغییراتی بدیم؟
			
		 
	 
 سلام، وقت بخیر...
خروجی این قطعا کد از php نسخه 5.3.0 به بعد یکسان است.
						
					 
					
				 
			 
			
			
				
				
				
				
					codebox.ir | تلفن: ٠٢١-٩١٦٩٠٤٢١ | آدرس : شیراز، شهرک خبازان، خیابان شهید سعید ماهر، دفتر کدباکس
ما را دنبال کنید: ID : @codebox_ir
 
				
				
			 
			
			
		 
	 
		
	
 
-