หัวข้อ: [PHP] รบกวนสอบถามการหาค่าซ้ำแล้วเรียงผลลัพธ์ต่อท้าย
เริ่มหัวข้อโดย: aon_cb ที่ 17 ตุลาคม 2020, 09:55:02
สอบถามการหาค่าซ้ำกันแล้วนำผลลัพธ์มาต่อท้ายครับ งมหลายชั่วโมงแล้ว ทั้งแยก Array เปรียบเทียบ index ก็ยังไม่ได้ $d="1-aaa,1-bbb,2-ccc,3-ddd,4-eee,4-fff,4-ggg,5-hhh,6-iii"; $e=explode(",",$d); for($i=0;$i<count($e);$i++){ echo $e[$i]."<br>"; } ผลลัพธ์จะได้ 1-aaa 1-bbb 2-ccc 3-ddd 4-eee 4-fff 4-ggg 5-hhh 6-iii อยากได้ผลลัพธ์แบบนี้ 1-aaa bbb 2-ccc 3-ddd 4-eee fff ggg 5-hhh 6-iii ขอบคุณครับ
หัวข้อ: Re: [PHP] รบกวนสอบถามการหาค่าซ้ำแล้วเรียงผลลัพธ์ต่อท้าย
เริ่มหัวข้อโดย: esanza.com ที่ 17 ตุลาคม 2020, 10:32:10
แนะนำให้ใช้ foreach ครับ ก่อนใช้ foreach เช็คดีๆว่ามันเป็นตัวแปร array จริงๆไหมและต้องไม่เท่ากับค่าว่าง และแนะนำให้มองหลายๆมิติครับ $d="1-aaa,1-bbb,2-ccc,3-ddd,4-eee,4-fff,4-ggg,5-hhh,6-iii"; $e=explode(",",$d); /*for($i=0;$i<count($e);$i++){ echo $e[$i]."<br>"; }*/ foreach ($e as $key1 => $value1) { $x=''; $x=explode("-",$value1); $t[$x[0]][]=$x[1]; //echo $x[0].' - '.$x[1].'<br />'; } foreach ($t as $key2 => $value2) { echo '<br />'.$key2.' - '; if(is_array($value2)){ foreach ($value2 as $key3 => $value3) { echo $value3.' '; } } } //print_r($t);
หัวข้อ: Re: [PHP] รบกวนสอบถามการหาค่าซ้ำแล้วเรียงผลลัพธ์ต่อท้าย
เริ่มหัวข้อโดย: atikanzaa ที่ 17 ตุลาคม 2020, 11:20:25
ยังงี้ไม่รู้ใช่ที่ต้องการหรือเปล่าครับ <?php $d="1-aaa,1-bbb,2-ccc,3-ddd,4-eee,4-fff,4-ggg,5-hhh,6-iii"; $e=explode(",",$d); $array = []; for($i=0; $i < count($e); $i++){ $array[$e[$i][0]] = ''; } for($i=0; $i < count($e); $i++){ if(array_key_exists($e[$i][0],$array)){ $array[$e[$i][0]] .= explode("-",$e[$i])[1]. ' '; } } foreach($array as $key => $value){ echo "$key - $value <br>"; }
หัวข้อ: Re: [PHP] รบกวนสอบถามการหาค่าซ้ำแล้วเรียงผลลัพธ์ต่อท้าย
เริ่มหัวข้อโดย: aon_cb ที่ 17 ตุลาคม 2020, 12:01:54
ขอบคุณทุกท่านมากครับ
หัวข้อ: Re: [PHP] รบกวนสอบถามการหาค่าซ้ำแล้วเรียงผลลัพธ์ต่อท้าย
เริ่มหัวข้อโดย: nscyber ที่ 17 ตุลาคม 2020, 12:09:38
$d = "1-aaa,1-bbb,2-ccc,3-ddd,4-eee,4-fff,4-ggg,5-hhh,6-iii"; $array = array(); $e = explode(",",$d);
//คัดแยกและจัดหมวดข้อความ for($i=0;$i<count($e);$i++){ for ($j=0; $j <= 9; $j++) {//วน 10 รอบ เพื่อหาตัวเลขที่เหมือนกันในข้อความ if(strpos($e[$i],$j.'')!==false){//หาตัวเลขที่เหมือนกันในข้อความ $array[$j][] = str_replace(array('0','1','2','3','4','5','6','7','8','9','-'),array('','','','','','','','','','',''),$e[$i]);//ลบตัวเลข และ - ออกจากข้อความแล้วบันทึกลง array เก็บแยกไว้ break;//หยุดเมื่อเจอเลขแล้ว } } }
//นำข้อความที่แยกไว้มาแสดง foreach ($array as $key => $value) { echo $key.' ';//แสดงตัวเองก่อน foreach ($value as $val) {//นำตัวหนังสือที่ได้มาแสดงทั้งหมด echo $val.' '; } echo '<br>'; }
|