[英]php array_search find index value
我有2個數組$userArray
和$differentArray
。
問題:我試圖從$userArray
找到$userId
與$differentArray
匹配的索引值,以便我可以拉出名字/姓氏
$ userArray的print_r
輸出:
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
)
)
$ differentArray的print_r
輸出:
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
)
)
這是我的嘗試,但它只輸出喬史密斯
* $differentArray
的構造方式與$userArray
相同
$i = 0;
while ($i < count($differentArray)){
$userId = $differentArray[$i]['userId'];
$key = array_search( $userId, $userArray );
$firstName = $userArray[$key]['firstName'];
$lastName = $userArray[$key]['lastName'];
$i++;
}
謝謝。
男人,使用foreach
。
$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++;
}
我不確定那個ID對象是什么,但我認為它有一個返回id屬性的__toString方法。
$output = array();
foreach ($differentArray as $user) {
foreach ($userArray as $searchedUser) {
if ($searchedUser['userId'] == $user['userId']) {
$output[] = $searchedUser;
}
}
}
這將把你正在尋找的用戶放在$ output數組中。 這樣你就不再需要索引了。 您可以迭代$ output以將值拉出到變量。 例如。
foreach ($output as $user) {
list($userId, $firstName, $lastName) = $user;
// do your code here
}
如果您確定$ userArray中只能有一個匹配,那么當您找到它或從$ output數組中拉出第一個匹配時,您可以從循環中突破。
我做了很多猜測,因為你沒有提供$ differentArray結構,也沒有指明你實際期望的是什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.