PHP - shuffle only part of an array

后端 未结 4 1142
无人及你
无人及你 2020-12-07 04:41

I have an array as so:

$animals = array (
    \'giraffe\',
    \'lion\',
    \'hippo\',
    \'dog\',
    \'cat\',
    \'rabbit\',
    \'fly\',
    \'hamster\         


        
4条回答
  •  一个人的身影
    2020-12-07 05:15

    function shuffle_include($a, $include_indexes)    
    {    
        $b = array();    
        foreach ($include_indexes as $i => $v)    
            $b[] = $a[$v];    
                
        shuffle($b);    
        
        foreach ($include_indexes as $i => $v)    
            $a[$v] = $b[$i];    
         
        return $a;    
    }
    

    Example:

    $animals = array (
    'giraffe',
    'lion',
    'hippo',
    'dog',
    'cat',
    'rabbit',
    'fly',
    'hamster',
    'gerbil',
    'goldfish');
    
    $new_animals = shuffle_include($animals, array(7,8));
    

提交回复
热议问题