【发布时间】:2014-11-12 14:30:22
【问题描述】:
我在处理数组时遇到问题。我想“比较”两个数组,看看两个数组中是否有匹配的“用户名”。我不确定我是否正确使用了 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 )
)
我尝试了什么:
//通过使用数组2中“用户名”的键值比较1和2来创建数组3 $结果 = 数组(); //$m = 键 //$m['username'] = 键值 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;
如果我需要澄清一些事情,请询问。成功创建第三个数组后,我将使用 json_encode 进行 AJAX 调用并使用 GET 类型。
提前感谢您的帮助!
【问题讨论】:
-
错误非常简单。您需要在 foreach 的 => 中使用
$username之类的东西,然后在 foreach 中使用$username['username']之类的东西。 -
所以这个? foreach($memo as $username => $user['username']){ 这让我对循环中的所有内容都“不匹配”
-
不。
foreach($memo as $key => $value) { echo $value['username']; }。类似的东西。 -
代码太多。只需给出两个数组并告诉您想要做什么。
-
$m将成为您数组中的 KEY,它只是一个字符串/整数。您不能使用该字符串/int 作为数组来分配 foreach 的 VALUE。
标签: php arrays multidimensional-array mysqli associative-array