如何检查多维数组的任何子数组中的特定键是否存在特定值?

11 浏览
0 Comments

如何检查多维数组的任何子数组中的特定键是否存在特定值?

我需要在任何索引的子数组中搜索一个多维数组中特定的值。

换句话说,我需要检查多维数组的单个列是否存在某个值。如果该值在多维数组中的任何位置存在,我希望返回true,否则返回false。

$my_array = array(

0 => array(

"name" => "john",

"id" => 4

),

1 => array(

"name" => "mark",

"id" => 152

),

2 => array(

"name" => "Eduard",

"id" => 152

)

);

我想知道检查数组$my_array是否包含键为"id"的值的最快和最有效的方法。例如,如果id => 152在多维数组的任何位置上存在,我希望返回true。

0
0 Comments

问题的出现原因:在多维数组中检查特定键的特定值是否存在,需要找到一个简单、高效的解决方法。

解决方法:

1. 使用array_column()函数来获取多维数组中指定键的值,返回一个包含指定键值的一维数组。

2. 使用array_search()函数在一维数组中查找特定值,如果找到则返回该值的键,否则返回false。

3. 使用$key !== false$key === false来确定array_search()是否找到了符合条件的数据。

下面是使用PHP代码实现以上解决方法的示例:

// 定义一个多维数组
$userdb = array(
    array(
        'uid' => '100',
        'name' => 'Sandra Shush',
        'url' => 'urlof100'
    ),
    array(
        'uid' => '5465',
        'name' => 'Stefanie Mcmohn',
        'pic_square' => 'urlof100'
    ),
    array(
        'uid' => '40489',
        'name' => 'Michael',
        'pic_square' => 'urlof40489'
    )
);
// 使用array_column()获取指定键的值
$uids = array_column($userdb, 'uid');
// 使用array_search()在一维数组中查找特定值
$key = array_search(40489, $uids);
// 判断array_search()是否找到了符合条件的数据
if ($key !== false) {
    echo "特定值存在于多维数组中的子数组中,键为:" . $key;
} else {
    echo "特定值不存在于多维数组中的任何子数组中";
}

运行以上代码,将输出特定值存在于多维数组中的子数组中,键为:2。

0
0 Comments

在多维数组的任何子数组中检查特定键的特定值是否存在的原因是,我们需要在多维数组中查找特定值,并确定该值存在的位置。这可以用于查找特定值的相关信息或执行其他操作。

为了解决这个问题,我们可以使用以下方法:

1. 创建一个多维数组,其中包含多个子数组,每个子数组都有一个键和一个值。

2. 使用array_column()函数获取所有子数组中特定键的值,并将结果存储在一个新的数组中。

3. 使用array_search()函数在新数组中搜索特定值。

4. 如果array_search()函数返回的结果不是FALSE,则表示特定值在多维数组中存在,输出"FOUND!"。否则,输出"NOT FOUND!"。

以下是解决该问题的代码示例:


$my_array = array(    
    0 =>  array(  
        "name"   => "john",  
        "id"    =>  4  
    ),  
    1   =>  array(  
        "name" =>  "mark",  
        "id" => 152  
    ), 
    2   =>  array(  
        "name" =>  "Eduard",  
        "id" => 152  
    )
);
if (array_search(152, array_column($my_array, 'id')) !== FALSE) {
  echo 'FOUND!';
} else {
  echo 'NOT FOUND!';
}

上述代码将输出"FOUND!",因为在多维数组的子数组中存在值为152的id键。

因此,通过使用array_column()和array_search()函数,我们可以轻松地在多维数组中检查特定值是否存在,并获取该值的键。

0
0 Comments

问题的出现原因:如何在多维数组的任何子数组中检查特定键是否存在特定值。

解决方法:

1. 可以使用一个简单的循环来解决该问题。可以使用一些数组函数进行混合和匹配,但它们实际上也会被实现为一个循环。

function whatever($array, $key, $val) {
    foreach ($array as $item)
        if (isset($item[$key]) && $item[$key] == $val)
            return true;
    return false;
}

2. 如何获取找到的id的键号。例如,如果我们搜索`id = 152`,结果将是`1`、`2`。

Grossman

0