รบกวนถามเกี่ยวกับเรื่อง String ใน php

สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ น่ะค่ะ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ

Moderator: phpbb, mindphp, ผู้ดูแลกระดาน

ตอบกลับโพส
hiruma
phpBBThailand Newbie
phpBBThailand Newbie
โพสต์: 5
ลงทะเบียนเมื่อ: 01 ม.ค. 1970, 07:00

รบกวนถามเกี่ยวกับเรื่อง String ใน php

โพสต์ โดย hiruma »

คือถ้าผมต้องการสุ่มค่า 3 ตัว (หรือหลายๆตัว)แล้วไปแทนที่ในอีกข้อความหนึ่งจะทำอย่างไรครับ

เช่น
มี String คือ "hello boy my name is boy and love boy"

และค่าของคำสุ่มอาจจะเป็น
girl,jack,jib

ผลลัพธ์ไม่อยากให้มันแก้ boy เป็น girl หรือ jack หรือ jib ทั้งหมดครับ
อยากให้มันสุ่ม
ถ้าใช้ str_replace มันจะแทนค่าหมดเลยครับ
เช่น "hello girl my name is girl and love girl"
ต้องการให้เป็น
"hello girl my name is jib and love jack"
"hello jack my name is jack and love jib"

แบบว่าสุ่มมั่วอ่ะครับในคำที่เรากำหนดให้แทนที่ boy ครับ
ขอบคุณที่ช่วยเหลือครับ
ภาพประจำตัวสมาชิก
icphysics
phpBBThailand Full Member
phpBBThailand Full Member
โพสต์: 38
ลงทะเบียนเมื่อ: 01 ม.ค. 1970, 07:00
ติดต่อ:

โพสต์ โดย icphysics »

ตัดมันออกมาเป็น คำๆ ก่อนซิครับ แล้ว ค่อย วน loop แทนที่ เอา
พูดคุย ปัญหา การหารายได้ ผ่านเน็ต
http://ptc.icphysics.com/webboard/SFM/index.php" onclick="window.open(this.href);return false;
เรื่องบ้านๆ สมาชิกกว่า 3 หมื่น
http://www.ecitepage.com" onclick="window.open(this.href);return false;
hiruma
phpBBThailand Newbie
phpBBThailand Newbie
โพสต์: 5
ลงทะเบียนเมื่อ: 01 ม.ค. 1970, 07:00

โพสต์ โดย hiruma »

รบกวน ขอตัวอย่างได้ไหมครับ
ภาพประจำตัวสมาชิก
icphysics
phpBBThailand Full Member
phpBBThailand Full Member
โพสต์: 38
ลงทะเบียนเมื่อ: 01 ม.ค. 1970, 07:00
ติดต่อ:

โพสต์ โดย icphysics »

$a_str = explode(" ","hello boy my name is boy and love boy" );
$a_rep = array('***','yyy',***');
$i = 0;
foreach( $a_str as $str) {
if($a_rep==$str )
// แทนที่ ข้อความ ของคุรแบบ ปกติ
$i++;
}

ปล. เขียน สดๆ นะครับ ยังไม่ได้ debug ของเอาไปรันดูครับ
ท่านใดมีเจ้าของกระทู้ ได้วิธีดีกว่านี้ก็ ลงไว้ดูบ้างนะครับ มีอะไรก็มาแลกเปลี่ยนกันบ้างนะ........
พูดคุย ปัญหา การหารายได้ ผ่านเน็ต
http://ptc.icphysics.com/webboard/SFM/index.php" onclick="window.open(this.href);return false;
เรื่องบ้านๆ สมาชิกกว่า 3 หมื่น
http://www.ecitepage.com" onclick="window.open(this.href);return false;
hiruma
phpBBThailand Newbie
phpBBThailand Newbie
โพสต์: 5
ลงทะเบียนเมื่อ: 01 ม.ค. 1970, 07:00

โพสต์ โดย hiruma »

ขอบคุณมากครับเด๋วลอง แปป :lol:
hiruma
phpBBThailand Newbie
phpBBThailand Newbie
โพสต์: 5
ลงทะเบียนเมื่อ: 01 ม.ค. 1970, 07:00

โพสต์ โดย hiruma »

ยัง งง ครับผมแล้ว ผมจะได้คำตอบเป็นตัวแปรอะไรครับ

ในลูปผมต้องใช้คำสั่งประมาณไหนครับ
ชี้แนะด้วย
hiruma
phpBBThailand Newbie
phpBBThailand Newbie
โพสต์: 5
ลงทะเบียนเมื่อ: 01 ม.ค. 1970, 07:00

โพสต์ โดย hiruma »

ได้แล้วครับขอบพระคุณมากๆครับ
ผมลองแก้ไขดูได้ code ดังนี้

$a_str = explode(" ","hello boy my name is boy and love boy" );
$a_rep = array('girl','jack','jib');
$compare="boy";
$i = 0;
foreach( $a_str as $str) {
if($compare==$str )
{
$num = count($a_rep) - 1;
srand ((double) microtime() * 1000000);
$randomtext = rand(0,$num);
$oneliner = $a_rep[$randomtext];
$str=str_replace("boy", $oneliner, $compare);
}
echo $str." ";
$i++;
}

มั่วจนได้
สุ่ม 3 ครั้งได้ผลลัพธ์ดังใจแล้วครับ
ครั้งที่ 1
hello girl my name is jib and love jack
ครั้งที่ 2
hello jack my name is jack and love girl
ครั้งที่ 3
hello girl my name is jib and love jack


ขอบคุณอีกครั้งที่ช่วยชี้ทางกระจ่างให้ครับผม

:lol:
ตอบกลับโพส

ย้อนกลับไปยัง

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: 28 และ บุคคลทั่วไป 0 ท่าน