从数组

时间:2016-07-29 20:53:28

标签: php html arrays variables

我正在尝试从数组中的对象列表中获取URL变量ID并显示它们。

当前代码:

$display = print_r($array);
echo $display;

输出:

Array ( [0] => https://example.com?ID=435 [1] => https://example.com?ID=53 [2] => https://example.com?ID=5 [3] => https://example.com?ID=25 )

我希望在ID元素内的数组中显示每个网址变量<div>

<div>435</div>
<div>53</div>
<div>5</div>
<div>25</div>

我尝试使用以下代码执行此操作,但没有运气:

foreach($display as $display2) {
   echo '<div>'.$_GET['ID'].'</div>';
}

4 个答案:

答案 0 :(得分:2)

$_GET超级全局用于从当前请求访问查询字符串值,而不是从存储在字符串中的任意URL中读取它们。

但不用担心,PHP的标准库有帮助的功能,即parse_url()parse_str()

foreach($display as $url) {
   $queryString = parse_url($url, PHP_URL_QUERY);
   parse_str($queryString, $parameters);
   echo '<div>'.$parameters['ID'].'</div>';
}

答案 1 :(得分:1)

你正在寻找的东西可能是这样的。您需要循环遍历数组中的每个URL并从中提取ID。这可以通过在=分割URL并抓住第二部分来完成。

foreach($display as $display2) {
   $stringArray = explode("=", $display2); //Break apart string at "="
   $id = $stringArray[1]; //Grab second part of split string (the ID)
   echo '<div>'.$id.'</div>';
}

答案 2 :(得分:1)

假设$ array包含所有URL,如示例所示:

foreach($array as $v){
    $str = explode('=', $v);
    echo '<div>'.$str[1].'</div>';
}

答案 3 :(得分:0)

$_GET是一个超级全局,包含所请求页面的所有查询参数。它不能在url字符串列表中使用。

相反,您可以使用substr()strrpos()的组合:

$urls = array(
    "https://example.com?ID=435",
    "https://example.com?ID=53",
    "https://example.com?ID=5",
    "https://example.com?ID=25",
);

foreach($urls as $url) {
    if(strrpos($url, "?") !== FALSE) {
        echo "<div>" . substr($url, strrpos($url, "?") + 4) . "<br />";
    }
}

您可以将上述示例复制并粘贴到phpfiddle.org中,以验证其是否按预期工作。

修改

在回显周围添加了if块,以过滤掉可能没有ID值的网址。