배열 처리 문제가 있습니다. 두 배열에서 "usernames"가 일치하는지 확인하기 위해 두 배열을 "비교"하고 싶습니다. 나는() 함수를와 in_array 사용하고 있는지 확실하지 않다 제대로in_array() 함수를 사용하여 배열을 만드는 방법은 무엇입니까?
내 배열처럼 보이는 방법이 있습니다 :
사용자 배열 1 :
Array ([0] => Array ([username] => LNDP [station] => D08)
[1] => Array ([username] => ACMAN [station] => D06)
[2] => Array ([username] => VTER [station] => D13)
)
//the users will have to be matched with memo_code
$user = array();
while($row = mysqli_fetch_assoc($get_user_result)){
$user[] = array("username" => $row['username'],
"station" => $row['station_number']
);
}
메모 배열 2 :
Array ( [0] => Array ([username] => VTER[aht_value] => 333)
[1] => Array ([username] => ACMAN [aht_value] => 456)
[2] => Array ([username] => ACYL [aht_value] => 789)
)
$memo = array();
while ($row = mysqli_fetch_assoc($dbh2_result)){
$memo[] = array("username" => $row['memo_code'],
"aht_value" => $row['avg_handle_time']
);
}
내 사용자 배열의 "사용자 이름"과 일치하도록 내 메모 배열의 모든 "사용자 이름"을 확인하고 싶습니다.
Array ([0] => Array ([username] => ACMAN [aht_value] => 456 [station] => D06)
)
내가 뭘하려 :이 일치 할 경우 , 나는 이름, 역, aht_value과 같이 배열을 만들
// 키 값을 사용하여 1과 2를 비교하여 배열 (3)를 작성 배열 2에서 "username"의 문자열 $ result = array(); // $ m = 키 // $ m [ '이름'] = 키 값 의 foreach (AS $ 메모 $ m => $ m [ '이름']) {
//if username in array 2 is in array 1
if(in_array($m, $user)){
//if aht_value is not null
if($memo['aht_value'] != null){
$result[] = "username: " . $user['username'] . "aht_value: " .$m['aht_value'] . "position: " . $user['position']. "<br>";
}
//else if aht_value is null
else{
$result[] = "username: " . $user['username'] . "aht_value: NA position: " . $user['position'] . "<br>";
}
}
//if there is no matching username do something?
else{
echo "no match";
}
}
$final_result = json_encode($result);
echo $final_result;
I가 필요하면 물건을 명확하게 물어보십시오. 세 번째 배열을 성공적으로 생성 한 후 json_encode를 사용하여 AJAX 호출을 만들고 GET 형식을 사용합니다.
미리 도움을 청하십시오!
이
오류는 매우 간단합니다. foreach의 =>에'$ username'과 같은 것을 사용할 필요가 있습니다. 그리고 foreach 내에서'$ username [ 'username']'같은 것들을 가져옵니다. – Andrew
이렇게? ** foreach ($ memo는 $ username => $ user [ 'username']) {** 이것은 루프의 모든 것에 "no match"를줍니다. – alda1234
Nooo. 'foreach ($ mem => $ value) {echo $ value [ 'username']; }'. 그런 것. – Andrew