Получение значения из ассоциативного массива. - PullRequest
0 голосов
/ 10 октября 2018

Я новичок и по какой-то причине у меня проблемы с этим.У меня есть следующий ассоциативный массив.

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 голосов
/ 10 октября 2018

просто попробуйте ниже .. надеюсь, это поможет

<?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'];
    }
}

?>
0 голосов
/ 10 октября 2018

Вы должны перебрать массив, используя цикл 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'];
        }
    }
?>
0 голосов
/ 10 октября 2018

Это будет полезно;

$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
...