I have 2 arrays $userArray
and $differentArray
.
question: I am trying to find the index value from $userArray
where $userId
matches from $differentArray
so that i can pull the first/last names
print_r
of $userArray outputs this:
JavaScript
x
Array
(
[0] => Array
(
[userId] => ID Object
(
[_unknown:protected] =>
[id_:protected] => 8k6Y4FTrnxKY45XrVkXvVJhL
)
[firstName] => Joe
[lastName] => Smith
)
[2] => Array
(
[userId] => ID Object
(
[_unknown:protected] =>
[id_:protected] => pCvR9qvIgGv8WyejcKmRtGD8
)
[firstName] => Sue
[lastName] => Miller
)
)
print_r
of $differentArray outputs this:
JavaScript
Array
(
[0] => Array
(
[date] => 1363800434868
[userId] => ID Object
(
[_unknown:protected] =>
[id_:protected] => 8k6Y4FTrnxKY45XrVkXvVJhL
)
[someTxt] => aaaa
)
[1] => Array
(
[date] => 1363800858828
[userId] => ID Object
(
[_unknown:protected] =>
[id_:protected] => 8k6Y4FTrnxKY45XrVkXvVJhL
)
[someTxt] => cccc
)
[2] => Array
(
[date] => 1363817564430
[userId] => ID Object
(
[_unknown:protected] =>
[id_:protected] => pCvR9qvIgGv8WyejcKmRtGD8
)
[someTxt] => ccc
)
)
**and here is my attempt, but it only outputs Joe Smith
*** $differentArray
is constructed the same way as $userArray
JavaScript
$i = 0;
while ($i < count($differentArray)){
$userId = $differentArray[$i]['userId'];
$key = array_search( $userId, $userArray );
$firstName = $userArray[$key]['firstName'];
$lastName = $userArray[$key]['lastName'];
$i++;
}
Advertisement
Answer
Man, use foreach
.
JavaScript
$i = 0;
while ($i < $total) {
$userId = $differentArray[$i]['userId'];
// $key = array_search($userId, $userArray);
foreach ($userArray as $k => $user) {
if($user["userId"] == $userId){
$key = $k;
break; // avoid useless loop
}
}
$firstName = $userArray[$key]['firstName'];
$lastName = $userArray[$key]['lastName'];
$i++;
}