我有一个多维数组。
我想让数组中的元素与某个值匹配。
阵列:
$userdb=Array
(
(0) => Array
(
(id) => '0',
(name) => 'Sandra Shush',
(url) => 'urlof100'
),
(1) => Array
(
(id) => '1',
(name) => 'Stefanie Mcmohn',
(pic_square) => 'urlof100'
),
(2) => Array
(
(id) => '2',
(name) => 'Michael',
(pic_square) => 'urlof40489'
)
);
将数组元素放到id = 2
:
$key = array_search(2, array_column($userDB, 'id'));
当前代码没有返回任何内容。
答案 0 :(得分:3)
您可以循环遍历数组,当您找到符合条件的元素时,请停止。
$id = 2;
$found_user = null;
foreach ($userdb as $user) {
if ($user['id'] == $id) {
$found_user = $user;
break;
}
}
使用当前代码,$key
应设置为2
,但请记住,变量名称区分大小写(所以$userdb != $userDB
)。如果您只想获取密钥,只要您使用正确的变量名称,它就应该有效。如果要获取整个元素,则可以直接使用array_search返回的键:
$user = $userdb[array_search(2, array_column($userdb, 'id'))];
答案 1 :(得分:-1)
<?php
$userdb=Array
(
(0) => Array
(
(id) => '0',
(name) => 'Sandra Shush',
(url) => 'urlof100'
),
(1) => Array
(
(id) => '1',
(name) => 'Stefanie Mcmohn',
(pic_square) => 'urlof100'
),
(2) => Array
(
(id) => '2',
(name) => 'Michael',
(pic_square) => 'urlof40489'
)
);
//echo $userdb[0]['id']; //-result index id 0 => 0-//
//echo $userdb[1]['id']; //-result index id 1 => 1-//
//echo $userdb[2]['id']; //-result index id 2 => 2-//
$id = 2;
foreach($userdb as $value)
{
if($value['id'] == $id)
{
var_dump($value);
break;
}
}
?>