2011-02-05 2 views
0

мне нужна помощь с проблемой массива у меня есть, до сих пор у меня есть это:Помощь с PHP случайных случайного массива

$array1 = array('foo1', 'foo2', 'foo3', 'foo4', 'foo5'); 

$array2 = array('newfoo1', 'newfoo2', 'newfoo3', 'newfoo4', 'newfoo5'); 

$random1 = array_rand($array2); 
$random2 = $array2[$random1]; 

foreach($array1 as $key){ 
echo $key . '<br />'; 
echo $random2 . '<br /><br />'; 
} 

, который выводит:

foo1 
newfoo4 

foo2 
newfoo4 

foo3 
newfoo4 

foo4 
newfoo4 

foo5 
newfoo4 

Но я хочу «newfoo4» (array2), чтобы быть случайным товаром, так что будет выводить somethng так:

foo1 
newfoo3 

foo2 
newfoo4 

foo3 
newfoo1 

foo4 
newfoo5 

foo5 
newfoo2 

, а то же самое,

НО также позволяют дубликата массив2 так array1 и array2 не должны иметь одни и те же элементы, сумма в их массивах ....

так, например, если array1 было 5 элементов и массив 2 только 3 шт конец выходной результат может быть:

foo1 
newfoo3 

foo2 
newfoo1 

foo3 
newfoo3 

foo4 
newfoo2 

foo5 
newfoo3 

... Я надеюсь, что это имеет смысл для кого-то ...

ответ

2
$array1 = array('foo1', 'foo2', 'foo3', 'foo4', 'foo5'); 
$array2 = array('newfoo1', 'newfoo2', 'newfoo3', 'newfoo4', 'newfoo5'); 

foreach($array1 as $key){ 
    echo $key . '<br />'; 
    echo $array2[array_rand($array2)] . '<br /><br />'; 
} 
+0

Спасибо, синглы будут отмечать как ответ, когда я смогу :) – Dizzi

0

Попробуйте положить эту линию

$random2 = $array2[array_rand($array2)]; 

в вашу foreach петлю, например, так:

foreach($array1 as $key){ 
    $random2 = $array2[array_rand($array2)]; 
    echo $key . '<br />'; 
    echo $random2 . '<br /><br />'; 
} 
0

Как о чем-то вроде этого?

foreach($array1 as $key){ 
$rand_num = rand(0, count($array2)); 
echo $key . '<br />'; 
echo $array2[$rand_num] . '<br /><br />'; 
} 
Смежные вопросы