10/10/2018, 10:04

so sánh 2 mảng với nhau !

mình có 2 mảng.mảng 1 :
A[]=A ,M ,L ,P
b[]=M,L

mình sử dụng hàm array_diff để so sánh 2 mảng kết quả trả về là một mảng chỉ còn phần tử : C[]=A << kết quả này không mong muốn.đáng lẽ pải trả về là :
C[]=A,P <<< kết quả mình cần.
hàm array_diff là hàm so sánh 2 mảng và trả về mảng chứa những phần tử khác nhau(theo mình hiểu vậy ^_^)
bạn nào bik chỉ giúp hàm sử lý cho đúng.
nếu có thuật toán khác thì mong được thọ giáo ^^!
thanks.
tiendx2002 viết 12:16 ngày 10/10/2018
Được gửi bởi VacCuChuoi
mình có 2 mảng.mảng 1 :
A[]=A ,M ,L ,P
b[]=M,L

mình sử dụng hàm array_diff để so sánh 2 mảng kết quả trả về là một mảng chỉ còn phần tử : C[]=A << kết quả này không mong muốn.đáng lẽ pải trả về là :
C[]=A,P <<< kết quả mình cần.
hàm array_diff là hàm so sánh 2 mảng và trả về mảng chứa những phần tử khác nhau(theo mình hiểu vậy ^_^)
bạn nào bik chỉ giúp hàm sử lý cho đúng.
nếu có thuật toán khác thì mong được thọ giáo ^^!
thanks.
Khả năng cao nhất ở đây là bạn chưa test đúng kết quả trả về.
Bạn sử dụng:
PHP Code:
print_r($C); 
Hoặc:
PHP Code:
var_dump($C); 
Thân ái.
VacCuChuoi viết 12:16 ngày 10/10/2018
sao mình test tới test lui mà khong dc nhỉ !vẫn cho ra kết quả sai.
bài toán này mình áp dụng cho code yahoo online.cho user nhập vào nick name và cho lưu vào 1 biến nối vớ nhau bằng dấu "|" << h mình cho user chọn để xóa nick này.bằng cách cho vào 2 mảng 1 mảng gốc mà 1 mảng các nick user chọn.lấy ra nick không chọn và lưu lại.
sử dụng hàm array_diff thì cho ra kết quả hư trên.!

helppppppppp meeeee !
tiendx2002 viết 12:18 ngày 10/10/2018
Được gửi bởi VacCuChuoi
sao mình test tới test lui mà khong dc nhỉ !vẫn cho ra kết quả sai.
bài toán này mình áp dụng cho code yahoo online.cho user nhập vào nick name và cho lưu vào 1 biến nối vớ nhau bằng dấu "|" << h mình cho user chọn để xóa nick này.bằng cách cho vào 2 mảng 1 mảng gốc mà 1 mảng các nick user chọn.lấy ra nick không chọn và lưu lại.
sử dụng hàm array_diff thì cho ra kết quả hư trên.!

helppppppppp meeeee !
Bạn thử print_r cả các biến khác ($A, $b) xem sao. Khi kết quả cuối không đúng, dùng cách print_r, var_dump đi ngược trở lại phía đầu xem cái gì sai.
Thân ái.
bka viết 12:09 ngày 10/10/2018
Được gửi bởi VacCuChuoi
mình có 2 mảng.mảng 1 :
A[]=A ,M ,L ,P
b[]=M,L

mình sử dụng hàm array_diff để so sánh 2 mảng kết quả trả về là một mảng chỉ còn phần tử : C[]=A << kết quả này không mong muốn.đáng lẽ pải trả về là :
C[]=A,P <<< kết quả mình cần.
hàm array_diff là hàm so sánh 2 mảng và trả về mảng chứa những phần tử khác nhau(theo mình hiểu vậy ^_^)
bạn nào bik chỉ giúp hàm sử lý cho đúng.
nếu có thuật toán khác thì mong được thọ giáo ^^!
thanks.
không sai . nhưng chắc có vấn đề với các key chỉ mục Hoặc các giá trị có khoảng trống mà bạn không để ý

Code:
<?php
$A=array('A','M','L' ,'P');
$B=array('M','L');


$new=array_diff($A,$B);
print_r($new);

//Array ( [0] => A [3] => P ) 
?>
VacCuChuoi viết 12:06 ngày 10/10/2018
code mình sử dụng :
biến đã lưu :$nick= "dongphuong|nhan_ho|vaccuchuoi|whlove2010|traitimc hicminhem";
$phantudel <<< biến này mình cho vao checkbox có value là các nick dc chọn
Code:
$nick=explode("|",$nick);

$patuconlai=array_diff($nick,$phantudel);


for($i=0;$i<sizeof($patuconlai);$i++)
{

if($nickconlai!=""){
$nickconlai="$nickconlai|$patuconlai[$i]";
}
else{$nickconlai=$patuconlai[$i];}
}
code ngắn xíu xiu nhưng khổ cái test và tìm hiểu trên mạng mà không ra !
bka viết 12:11 ngày 10/10/2018
sao làm linh tinh thế. thế này là đủ thui chứ
Code:
<?php
$nick=explode("|",$nick);

$patuconlai=array_diff($nick,$phantudel);
$nickconlai=implode('|',$patuconlai);
echo $nickconlai;
?>
VacCuChuoi viết 12:17 ngày 10/10/2018
Hix Thanks bka với tiendx2002 mình đang test lại có vẻ ổn hơn.^.^ đang test lại code của bka.

một lần nữa cảm ơn nhiều !

p/s :error id: "bad_httpd_conf" <<< http://bkascript.com/ << webiste của bka bi lỗi jì đóa !
bka viết 12:07 ngày 10/10/2018
Được gửi bởi VacCuChuoi
<<< http://bkascript.com/ << webiste của bka bi lỗi jì đóa !
lỗi không chăm sóc đó mà
Bài liên quan
0