2011-09-15 25 views
1

更新:私は自分の関数を書いています。配列マージ再帰的スタティックランダム

私自身の答え

<?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; 
} 
?> 

自分の質問:私は$配列1と$配列2をマージし、作りたい

$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') 
); 

は、私はこのような二つの配列を持っていますそれは静的なランダムなユニークなので、私はこのような私の結果が欲しい:

$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') 
); 

毎回ページをリロードすると、出力結果は常に上記の結果と似ています。

+0

スタティックランダムユニーク...まあ何? – k102

+0

私は私の答え:)ええ静的ランダムなSEOのための有用な、感謝を発見した – oknoorap

答えて

2

アレイをマージして、結果の配列をシャッフルします。

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

$ randには最終バージョンが含まれています。