【发布时间】:2014-11-11 20:55:10
【问题描述】:
我在处理数组时遇到问题。我想“比较”两个数组,看看两个数组中是否有匹配的“用户名”。我不确定我是否正确使用了 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']
);
}
MEMO 数组 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']
);
}
我想检查我的 MEMO 数组中的每个“用户名”以匹配我的 USER 数组中的“用户名”。 如果它们匹配,我想创建一个包含用户名、站、aht_value 的数组,如下所示:
Array ( [0] => Array ( [username] => ACMAN [aht_value] => 456 [station] => D06 )
)
//creating array 3 by comparing 1 and 2 by using key value of "username" from array 2
$result = array();
//$m = key
//$m['username'] = key value
foreach($memo as $m => $m['username']){
//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;
错误信息
Warning: Cannot use a scalar value as an array in line 97 :
foreach($memo as $m => $m['username']){
如果我需要澄清一些事情,请询问。成功创建第三个数组后,我将使用 json_encode 进行 AJAX 调用并使用 GET 类型。
提前感谢您的帮助!
【问题讨论】:
-
有人可以告诉我最好编辑什么而不是投票吗?
-
看我的回答。鉴于您的设置,您的问题有点难以回答,尽管您的编辑使尝试提供帮助变得更容易:)
标签: php arrays multidimensional-array mysqli associative-array