Массив слияние рекурсивный статический случайный - PullRequest
1 голос
/ 15 сентября 2011

Обновление: Я написал свои функции, и это работает.

Мой собственный ответ

<?php
function array_merge_recursive_random_static($first_array, $second_array, $key='')
{
    $merged_array = array_merge_recursive($first_array, $second_array);
    $arrays = &$merged_array;
    mt_srand(strlen($key)); 
    for ($i = count($arrays) - 1; $i > 0; $i--)
    { 
        $j = @mt_rand(0, $i); 
        $tmp = $arrays[$i]; 
        $arrays[$i] = $arrays[$j]; 
        $arrays[$j] = $tmp; 
    }
    return $arrays;
}
?>

МойСобственный вопрос:

У меня есть два таких массива:

$array2 = array(
          0 => array('id' => 'dada', 'title' => 'this dada', 'desc' => 'dadaeating'),
          1 => array('id' => 'caca', 'title' => 'this caca', 'desc'=> 'caca eating') 
);

$array2 = array(
          0 => array('id' => 'baba', 'title' => 'this baba', 'desc' => 'baba eating'),
          1 => array('id' => 'memo', 'title' => 'this memo', 'desc'=> 'memo eating') 
);

Я хочу объединить $ array1 и $ array2 и сделать его статическим случайным образом уникальным, поэтому я хочу, чтобы мой результат был таким:

$arrays = array(
          0 => array('id' => 'caca', 'title' => 'this caca', 'desc' => 'cacaeating'),
          2 => array('id' => 'memo', 'title' => 'this memo', 'desc'=> 'memo eating'),
          3 => array('id' => 'dada', 'title' => 'this dada', 'desc'=> 'dada eating'),
          4 => array('id' => 'baba', 'title' => 'this baba', 'desc'=> 'baba eating')
);

Каждый раз, когда я перезагружаю страницу, результат вывода всегда такой же, как и выше.

1 Ответ

2 голосов
/ 15 сентября 2011

Просто объедините массивы, затем перемешайте полученный массив.

$rand = array_merge($array1, $array2);
shuffle($rand);

$ rand теперь содержит окончательную версию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...