|
|
|
ขอถามหน่อยค่ะถ้ามีอาร์เรย์อยู่ 2 ตัว แล้วต้องการอาร์เรย์ 1 ที่ไม่มีอยู่ในอาร์เรย์ที่ 2 ต้องทำไงค่ะ |
|
|
|
|
|
|
|
สมมุติว่ามีอาร์เรย์อยู่สองตัว
ตัวแรกมี a,b,c,d,e,f,g,h
ตัวที่สอง c,e,g
แต่ว่าต้องการค่าที่มีในอาร์เรย์1 แต่ไม่มีใน2
คือ a,b,d,f,h
ต้องทำยังไงค่ะรบกวนที่
Tag : PHP
|
|
|
|
|
|
Date :
2011-05-27 01:38:35 |
By :
kimsumsun |
View :
873 |
Reply :
18 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตามไปครับ แค่นี้แหละ ง่ายๆ
array_diff
|
|
|
|
|
Date :
2011-05-27 01:50:29 |
By :
PlaKriM |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณค่าาาาาา
|
|
|
|
|
Date :
2011-05-27 02:01:16 |
By :
kimsumsun |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
โทดนะค่ะ
หนูวนรับค่ามาไว้แล้วมันจาเก็บในตัวแปร $pair[$z] กับ $ness[$w]
แล้วหนูเอาไปใช้
$result= array_diff($ness,$pair);
print_r($result);
ค่าที่ได้มันออกมาค่าเดียวยังงี้ค่ะ
Array ( [0] =>h
)
ทำไมมันไม่ออกเป็น a,b,d,f,h ละค่ะ
|
|
|
|
|
Date :
2011-05-27 02:45:40 |
By :
kimsumsun |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ช่วยหน่อยเถอะค่ะอยากได้จิงๆไม่รู้ทำไมถึงได้ค่าออกมาแบบนั้น
|
|
|
|
|
Date :
2011-05-27 14:42:45 |
By :
kimsumsun |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<form method="post" >
1ST Array : <input type="text" name="first_arr" size="30" onfocus="this.select();" style="color:light-gray;" /> <br />
2ND Array : <input type="text" name="second_arr" size="30" onfocus="this.select();" style="color:light-gray;" /> <input type="submit" name="submitForm" />
</form>
<?php
function ArrayDiff($first,$second){
$result = array();
foreach($first as $f_element){
$count=0;
foreach($second as $s_element){
if($s_element == $f_element)
$count++;
}
if($count==0)
array_push($result,$f_element);
}
return $result;
}
if(isset($_POST["submitForm"]) && !empty($_POST["first_arr"]) && !empty($_POST["second_arr"]) ){
$firstArr = explode("," , $_POST["first_arr"]);
$secondArr = explode("," , $_POST["second_arr"]);
$result = ArrayDiff($firstArr , $secondArr);
print_r($result);
}
?>
|
|
|
|
|
Date :
2011-05-27 15:16:52 |
By :
Unidentifier |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
หนูวนรับค่ามาไว้แล้วมันจาเก็บในตัวแปร $pair[$z] กับ $ness[$w]
วนยังไงครับ ลอง print_r($pair); กับ print_r($ness); ออกมาดูแล้วมาแปะให้ดูหน่อย
|
|
|
|
|
Date :
2011-05-27 15:27:08 |
By :
PlaKriM |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แบบนี้หรือเปล่าครับ
Code (PHP)
<?php
$arr1 = array("a", "b", "c", "d", "e", "f", "g", "h");
$arr2 = array("c", "e", "g");
$arr_diff = array_diff($arr1, $arr2);
print_r($arr_diff);
?>
|
|
|
|
|
Date :
2011-05-27 15:35:24 |
By :
Pangpondpuen |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
รบกวน แนะนำเกี่ยวกับ foreach ให้ผมแบบละเอียดสักรอบได้ไหมครับ
นับตั้งแต่วันแรกที่เขียน php ถึงวันนี้ ยังไม่กระจ่างเลยครับ
เพราะลองใช้แล้ว มักจะ error บ่อยๆ ครับ
==============================
ผมขออนุญาตฝาก เว็บด้วยครับ
http://www.unseenkanchanaburi.com
อันนี้แนะนำสถานที่ท่องเที่ยวแถวบ้านผม (โปรโมท จังหวัดกาญจนบุรีครับ )
|
|
|
|
|
Date :
2011-05-27 15:36:40 |
By :
tingtongkub |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอนนี้หนูลองเปลี่ยนเป็นแบบนี้นะค่ะการใส่อาร์เรย์
Code (PHP)
$pair= array();
$ness= array();
if((isset($nameset))&&(isset($bb))&&(isset($mm))){
for($i=1;$i<=$_POST['hdnMaxLine1'];$i++){
for($a=1;$a<=$_POST['hdnMaxLine'];$a++){
$question= $_POST['Column1_'. $a];
$answer= $_POST['Column2_'. $a];
If($answer==$i){
echo $question. "</br>";
$m=$_POST['Column4_'. $i];
array_push($pair,$m);
} //end if
}//end for a
} //End for i
for($x=1;$x<=$_POST['hdnMaxLine1'];$x++){
$w = $_POST['Column4_'. $x]. "</br>";
array_push($ness,$w);
}
echo "</br></br></br></br>";
$z = array_diff($pair,$ness);
foreach($z as $val ){
echo "\$val = $val <br>";
}
}//End if
|
|
|
|
|
Date :
2011-05-27 16:01:35 |
By :
kimsumsun |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Date :
2011-05-27 16:12:24 |
By :
kimsumsun |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 9 เขียนโดย : kimsumsun เมื่อวันที่ 2011-05-27 16:01:35
รายละเอียดของการตอบ ::
ลองดูตามนี้น่ะครับ
function ArrayDiff($first,$second){
07.$result = array();
08.foreach($first as $f_element){
09.$count=0;
10.foreach($second as $s_element){
11.if($s_element == $f_element)
12.$count++;
13.}
14.if($count==0)
15.array_push($result,$f_element);
16.}
17.return $result;
18.}
$pair= array();
02.$ness= array();
03.if((isset($nameset))&&(isset($bb))&&(isset($mm))){
04.for($i=1;$i<=$_POST['hdnMaxLine1'];$i++){
05.for($a=1;$a<=$_POST['hdnMaxLine'];$a++){
06.$question= $_POST['Column1_'. $a];
07.$answer= $_POST['Column2_'. $a];
08.If($answer==$i){
09.echo $question. "</br>";
10.$m=$_POST['Column4_'. $i];
11.array_push($pair,$m);
12.} //end if
13.}//end for a
14.} //End for i
15.for($x=1;$x<=$_POST['hdnMaxLine1'];$x++){
16.$w = $_POST['Column4_'. $x]. "</br>";
array_push($ness,$w);
}
echo "</br></br></br></br>";
$z = ArrayDiff($pair,$ness);
foreach($z as $val ){
echo "\$val = $val <br>";
}
}//End if
|
|
|
|
|
Date :
2011-05-27 17:00:45 |
By :
Unidentifier |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 8 เขียนโดย : tingtongkub เมื่อวันที่ 2011-05-27 15:36:40
รายละเอียดของการตอบ ::
$NumericIndexArr = array("AB","BC","CD","EF");
$AlphabeticIndexArr = array("ten"=>10,"hundred"=>100,"thousand"=>1000);
for($i=0; $i<count($NumericIndexArr); $i++){
echo "index:$i [{$NumericIndexArr[$i]}]<br />";
}
echo "<hr />foreach with value only <br />" ;
foreach($NumericIndexArr as $val) // เอาเฉพาะค่าที่อยู่ในอาร์เรย์
echo "value:[$val]<br />";
echo "<hr />foreach with index and value<br />" ;
foreach($NumericIndexArr as $key => $val)
echo "index:[$key] value:[$val]<br />";
echo "<hr />foreach with index and value<br />" ;
foreach($AlphabeticIndexArr as $key => $val)
|
|
|
|
|
Date :
2011-05-27 17:29:58 |
By :
Unidentifier |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองเปลี่ยนมาใช้ ฟังก์ชัน ArrayDiff ก้อยังได้ค่าเหมือนเดิมค่ะมันออกมาแต่ค่าที่มันซ้ำกัน แต่อยากได้ค่าที่มันไม่ซ้ำกัน
|
|
|
|
|
Date :
2011-05-27 17:48:03 |
By :
kimsumsun |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณทุกความรู้ค่ะ ถึงหนูจะยังใช้ไม่เป็นก้อไม่เป็นไรค่ะ หนูได้วิธีคิดใหม่ละค่ะ คิดว่าไม่ต้องใช้ฟังก์ชันก้อได้ ขอบคุณทุกคนนะค่ะ
|
|
|
|
|
Date :
2011-05-27 20:35:18 |
By :
kimsumsun |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 15 เขียนโดย : kimsumsun เมื่อวันที่ 2011-05-27 20:35:18
รายละเอียดของการตอบ ::
..
..
..
array_push($ness,$w);
}
เพิ่มโค้ดชุดนี้เข้าไปครับ แล้วเอาเอาพุทมาดูกันครับ
print_r($pair);
print_r($ness);
echo "</br></br></br></br>";
$z = ArrayDiff($pair,$ness);
foreach($z as $val ){
echo "\$val = $val <br>";
}
}//End if
|
|
|
|
|
Date :
2011-05-27 21:15:18 |
By :
Unidentifier |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|