у меня есть пользовательский массив как это :
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)
Этот вопрос является продолжением вашего предыдущего вопрос. Основываясь на этих знаниях, вот ответ на ваш вопрос:
function getAgentForRejectedUser($rejectedUser, $arrayListeAgence)
{
foreach ($arrayListeAgence as $agent => $users) {
foreach ($users as $user) {
$data = explode(' ', $user);
if ($data[0] == $rejectedUser) {
return $agent;
}
}
}
return false;
}
Вы должны перебрать foreach с вашими массивами и сравнить строки.