从关联数组获取值。

时间:2018-10-10 09:33:26

标签: php arrays get key associative

我是一个初学者,由于某种原因,我对此感到麻烦。我有以下关联数组。

Array
(
[0] => Array
    (
        [name_type] => UnixName
        [name] => charles
    )

[1] => Array
    (
        [name_type] => DNSFQDN
        [name] => charles.mydnsdomain.com
    )

[2] => Array
    (
        [name_type] => DNSDomain
        [name] => mydnsdomain.com
    )

)

问题在于这些数组永远不会以相同的顺序排列,并且键的名称相同。我只需要DNSFQDN。当我遍历数组时,如何检查DNSFQDN值是否存在,然后检索charles.mydnsdomain.com,以便将其放入变量中。

我已经尝试过in_array和array_search之类的功能,但是由于我严格使用关联数组,因此遇到了麻烦。

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:0)

这会有所帮助;

$input = array(
    array(
        'name_type' => 'UnixName',
        'name' => 'charles'
    ),
    array(
        'name_type' => 'DNSFQDN',
        'name' => 'charles.mydnsdomain.com'
    ),
    array(
        'name_type' => 'DNSDomain',
        'name' => 'mydnsdomain.com'
    )
);

$domain = $input[array_search('DNSFQDN', array_column($input, 'name_type'))]['name'];
echo $domain; exit;
// output; charles.mydnsdomain.com

答案 1 :(得分:0)

简单尝试一下波纹管..我希望它将对您有帮助

<?php
$test_array = array(
        array('name_type'=>'UnixName','name'=>'charles'),
        array('name_type'=>'DNSFQDN','name'=>'charles.mydnsdomain.com'),
        array('name_type'=>'DNSDomain','name'=>'mydnsdomain.com'),
    );

foreach ($test_array as $key => $value) {
    if($value['name_type']=='DNSFQDN'){
        echo "Domain Name :";
        echo $value['name'];
    }
}

?>

答案 2 :(得分:0)

您必须使用foreach循环来迭代数组。

<?php
    $array_values = array(
    array('name_type'=>'UnixName','name'=>'charles'),
    array('name_type'=>'DNSFQDN','name'=>'charles.mydnsdomain.com'),
    array('name_type'=>'DNSDomain','name'=>'mydnsdomain.com'),
    );
    foreach ($array_values as $value) {
        if($value['name_type']=='DNSFQDN'){
            echo "DNSDomain = ".$value['name'];
        }
    }
?>