ThaiSEOBoard.com

พัฒนาเว็บไซต์ => Programming => ข้อความที่เริ่มโดย: aon_cb ที่ 17 ตุลาคม 2020, 09:55:02



หัวข้อ: [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>';
}