2012-06-07 2 views

ответ

4

Предполагая, что "случайный" означает случайный:

<?php 
$a = rand(1, 10000000000); 
$b = "abcdefghi"; 

//get a random position in a 
$randPos = rand(0,strlen($a)); 
//insert $b in $a 
$c = substr($a, 0, $randPos).$b.substr($a, $randPos); 

var_dump($c); 
?> 

выше кода работы: http://codepad.org/VCNBAYt1

Редактировать: имел назад назад. Я прочитал «вставить в Ь,

+0

Это работает! Tnks u !! –

+0

@ AldoHolm Я читаю OP назад, исходный код вставляет $ a в $ b. исправил код так, чтобы он делал $ b в $ a. –

0

Вы должны положить {$ B} на вершине {$ а}, так что вы можете вставить его в {$ B} .. например:

<?php 
    $b = "abcdefghi"; 
    $a = rand(1, 10000000000); 
    $a .= $b; 
    echo $a; 
?> 
+1

Что именно определяет порядок, определяемый переменными? Пока обе переменные определяются к моменту их использования, заказ не имеет значения. –

+0

Tnks, но это не случайная позиция –

0

Sth так:

<?php 
$position = GetRandomPosition(); // you will have to implement this function 
if($position >= strlen($a) - 1) { 
    $a .= $b; 
} else { 
    $str = str_split($a, $position); 
    $a = $str[0] . $b . implode(array_diff($str, array($str[0]))); 
} 
?> 
1

Я думаю, вы могли бы путем обработки $ а в виде строки и конкатенации его с $ Ъ:

$a = rand(1, 1000000); 
$b= "abcd"; 
$pos = rand(0, strlen($a)); 
$a = substr($a, 0, $pos).$b.substr($a, $pos, strlen($a)-$pos); 

и результаты:

a=525019 
pos=4 
a=5250abcd19 

a=128715 
pos=5 
a=12871abcd5 
0

Cast $ a в строку, затем используйте strlen, чтобы получить длину $ a. Используйте rand с длиной $ a как максимальную, чтобы получить случайную позицию в пределах $ a. Затем используйте substr_replace, чтобы вставить $ b в $ a на положение, которое вы только что рандомизировали.

Смежные вопросы