【发布时间】:2015-07-15 08:08:12
【问题描述】:
我有一个这样的用户数组:
array(3) {
["A057"] => array(7) {
[0] => string(13) "KENE Michael "
[1]=> string(16) "KIRAN Maria "
[2]=> string(14) "ATHISA KATHISA "
[3]=> string(16) "SATYA Dev "
[4]=> string(16) "Raghav Laurent "
[5]=> string(12) "DARTY Suneep "
[6]=> string(22) "GIO Simral "
}
["A154"]=> array(0) { }
[0]=> array(1) {
[0]=> string(17) "NICOLE Lotta "
}
}
我也有一个被拒绝的用户数组:
array(3) {
[0]=> string(5) "KENE"
[1]=> string(4) "KIRAN"
[2]=> string(6) "ATHISA"
}
预期输出:
如果我迭代我被拒绝的用户数组,例如,对于 KENE Michael ,它必须发送“A057”(第一次出现在用户数组中)
我该如何继续? 我试过 array_search 但什么也没返回
我的代码
$arrayListeAgence = array();
$usersAdded = array();
$arrayDupplicate = array();
for ($i = 0; $i < count($pieces); $i = $i + 2) {
$key = $pieces[$i];
$usersStr = $pieces[$i + 1];
$users = explode('/', $usersStr);
$arrayListeAgence[$key] = array();
for ($j = 0; $j < count($users); $j = $j + 2) {
$username = $users[$j];
if (array_search($username, $usersAdded) === false) {
$arrayListeAgence[$key][] = $username . " " . $users[$j + 1] . " ";
$usersAdded[] = $username;
}
else {
/*foreach($arrayListeAgence as $key => $val) {
print($key); //
//print_r($val); //
}*/
if (array_search($username, $arrayListeAgence) === false) {
//if we found user in arrayListAgence
$arrayDupplicate[] = $username.$key;
}
}
}
}
var_dump($arrayDupplicate);//$key equal to A154 (I want A057-first occurence found on the main array)
【问题讨论】:
-
我试过了你的尝试在哪里?
-
为什么用户数组中有些条目有命名键,而最后一个有数字键?
-
array_search需要完全匹配,它不会查找子字符串。我认为没有内置函数可以满足您的需求,您只需要编写一个嵌套循环即可。 -
如何在主数组(用户数组)中进行搜索?
-
所以让我说清楚...您有一个要迭代的主数组..并与被拒绝的数组进行比较并根据关闭结果查找匹配项?