【问题标题】:Obtain a key value from another key's value从另一个键的值中获取一个键值
【发布时间】:2015-05-25 18:50:16
【问题描述】:

我正在尝试解析 PHP curl 函数使用的 Netscape HTTP Cooke File

我正在使用this parser,它返回如下数组:

Array
(
    [0] => Array
        (
            [domain] => REDACTED
            [flag] => FALSE
            [path] => /
            [secure] => FALSE
            [expiration] => 2016-05-23 03:27:19
            [name] => csrftoken
            [value] => REDACTED
        )

    [1] => Array
        (
            [domain] => #HttpOnly_REDACTED
            [flag] => FALSE
            [path] => /
            [secure] => FALSE
            [expiration] => 2015-06-08 03:27:17
            [name] => sessionid
            [value] => REDACTED
        )

    [2] => Array
        (
            [domain] => REDACTED
            [flag] => FALSE
            [path] => /
            [secure] => FALSE
            [expiration] => 1969-12-31 09:00:00
            [name] => PHPSESSID
            [value] => REDACTED
        )

)

我需要在这里获取sessionid。问题是,我不能只使用 $array[1]['value'],因为数组的数量和它们的位置是不固定的。我只知道 $array[?]['name'] == "sessionid"。

【问题讨论】:

  • 我会重新设计你如何创建这些数组。密钥设计为您知道
  • 然后只需使用$array[1]['key2b'] 即可获得value2b。我不知道你现在有什么问题/疑问。
  • 这个问题对我来说不是很清楚。无法得到你真正想要的。如果您可以向我们提供您想要的输出,那么这将有助于更好地理解

标签: php arrays multidimensional-array associative-array


【解决方案1】:

这应该可行。

<?php

// this is array returned to you from parser
$array = ...;

foreach ($array as $number => $row) {
    if ($row['name'] == 'sessionid') {
        $index = $number;
        break;
    }        
}

if (isset($number)) {
    $sessionID = $array[$index];
} else {
    echo "nothing found";
}

// now you can use $sessionID['expiration'] etc

【讨论】:

  • $sessionID = $array[$index]['value'] 为我工作:D
  • 有没有更短的使用原生函数的方法?
猜你喜欢
  • 2017-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-09-23
  • 2017-10-27
  • 1970-01-01
  • 2021-09-30
  • 1970-01-01
相关资源
最近更新 更多