获取与多维数组中的值匹配的元素

时间:2015-08-11 03:02:11

标签: php arrays

我有一个多维数组。

我想让数组中的元素与某个值匹配。

阵列:

$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'));

当前代码没有返回任何内容。

2 个答案:

答案 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;
	}
}
?>