繁体   English   中英

将数组键值与给定名称进行比较

[英]Compare Array key value with the given name

嗨,我正在与循环一些数组操作。

我想将数组键值与给定名称进行比较。

但是我无法获得确切的输出。

这是我的数组:

Array
(
    [0] => Array
        (
            [label] =>  
            [value] => 
        )

    [1] => Array
        (
            [label] => 3M
            [value] => 76
        )

    [2] => Array
        (
            [label] => Test
            [value] => 4
        )

    [3] => Array
        (
            [label] => Test1
            [value] => 5
        )

    [4] => Array
        (
            [label] => Test2
            [value] => 6
        )
)

这是我需要比较的$test_name = "Test2";$test_name = "Test2";

下面我尝试过的代码:

 $details // getting array in this varriable
if($details['label'] == $test_name)
{
    return $test_name;
}
else
{
    return "NotFound";
}

但是每次它返回NotFound。

没有得到什么确切的问题。

@Manthan Dave尝试使用array_column和in_array()如下所示:

<?php
if(in_array($test_name, array_column($details, "label"))){
    return $test_name;
}
else
{
    return "NotFound";
}

$details是一个多维数组,但是您试图像简单数组一样访问它。
您也需要遍历它:

foreach ($details as $item) {
    if($item['label'] == $test_name)
    {
        return $test_name;
    }
    else
    {
        return "NotFound";
    }
}

我希望您的数组永远不能包含标签NotFound ... :)

您可以在下面的数组中尝试使用数组,

if($details[4]['label'] == $test_name)
{
    return $test_name;
}
else
{
    return "NotFound";
}

虽然foreach循环应该可以,但如果不能尝试,

for($i=0; $i<count($details); $i++){

    if($details[$i]['label'] == $test_name)
    {
        return $test_name;
    }
    else
    {
        return "NotFound";
    }

}

只使用in_arrayarray_column而不使用foreach循环作为

if (in_array($test_name,array_column($details, 'label')))
{
    return $test_name;
}
else
{
    return "NotFound";
}

您只需要检查以下if条件,因为else第一次满足时将返回“ notfound”,然后将不执行。

$result = 'NotFound';
foreach ($details as $item) {
    if($item['label'] == $test_name)
    {
        $result = $test_name;
    }
}
return $result;

要么

$result = 'NotFound';
if (in_array($test_name,array_column($details, 'label')))
{
    $result = $test_name;
}
return $result;

这样遍历数组,

array_walk($array, function($v) use($test_name){echo $v['label'] == $test_name ? $test_name : "NotFound";});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM