检查数组值是否存在,然后显示第二个值


check if array value exist then show second value

我得到的数组类似:

Array ( [0] => url=website1.com/etcetcetc&itag=43&quality=medium&something=nill
[1] => url=website2.com/etcetcetc&itag=18&quality=medium&something=nill
[2] => url=website3.com/etcetcetc&itag=5&quality=small&something=nill
[3] => url=website4.com/etcetcetc&itag=36&quality=small&something=nill
[4] => url=website5.com/etcetcetc&itag=17&quality=small&something=nill )

在使用foreach($links as $link)之后,我得到了如下阵列:

Array ( [url] => website.com1/etcetcetc [itag] => 43 [quality] => medium [something] => nill )
Array ( [url] => website.com2/etcetcetc [itag] => 18 [quality] => medium [something] => nill )
Array ( [url] => website.com3/etcetcetc [itag] => 5 [quality] => small [something] => nill )
Array ( [url] => website.com4/etcetcetc [itag] => 36 [quality] => small [something] => nill )
Array ( [url] => website.com5/etcetcetc [itag] => 17 [quality] => small [something] => nill )

如何显示其中的选定链接?

我想显示与itag:43、18、36的链接。它会检查其中一个URL是否可用。如果可用,则显示其URL。它可以是1、2或3个链接,这意味着如果具有itag 43和18的链接可用,则它显示2个URL,如果所有3个itag链接都可用,则显示这3个链接。

每次的url都不一样,所以我无法将url保存在php中,这意味着它必须从数组中获取url/链接。

目前我展示的是:

echo '<a href="'.$r['url'].'">quality: '.$r['itag'].'</a>';

-------编辑------

这是我想做的脚本/代码(它是由我的一个朋友制作的,但他现在已经几天不在了)

foreach($links as $link) { 
    echo '<a href="'.$r['url'].'">quality: '.$r['itag'].'</a><br />';
}

您只需遍历数组,如果它有您要查找的数字,则对其进行回声处理,如下所示:

$array = array(
    array( 'url' => 'website.com1/etcetcetc', 'itag' => 43, 'quality' => 'medium', 'something' => 'nill' ),
    array( 'url' => 'website.com2/etcetcetc', 'itag' => 18, 'quality' => 'medium', 'something' => 'nill' ),
    array( 'url' => 'website.com3/etcetcetc', 'itag' => 5, 'quality' => 'small', 'something' => 'nill' ),
    array( 'url' => 'website.com4/etcetcetc', 'itag' => 36, 'quality' => 'small', 'something' => 'nill' ),
    array( 'url' => 'website.com5/etcetcetc', 'itag' => 17, 'quality' => 'small', 'something' => 'nill' )
);
$r = array();
function test($array, $number) {
    foreach($array as $r)
        if ($r['itag'] == $number) {
            echo '<a href="'.$r['url'].'">quality: '.$r['itag'].'</a>';
        }
}
test($array, 43);
test($array, 18);
test($array, 36);

您可以在此处进行测试:http://3v4l.org/E0Pck

EDIT:编辑后,以下是解决此问题的方法:实际上,您唯一需要做的就是定义一个包含您要查找的itag的数字变量,然后在foreach循环中对其进行检查,如下所示:

$number = 22;
foreach($links as $link) { 
    parse_str($link,$r); 
    if ($r['itag'] == $number)
        echo '<a href="'.$r['url'].'">quality: '.$r['itag'].'</a><br />';
}

或者,如果你想使用一个数组作为输入,这样你就不必对每个数字进行输入,只需将它包装在另一个foreach循环中,循环通过你新的$numbers数组的元素,如下所示:

$numbers = array(17, 22, 36);
foreach($numbers as $number) {
    foreach($links as $link) { 
        parse_str($link,$r); 
        if ($r['itag'] == $number)
            echo '<a href="'.$r['url'].'">quality: '.$r['itag'].'</a><br />';
    }
}
   $array = array( 
array( 'url' => 'website.com1/etcetcetc', 'itag' => 43, 'quality' => 'medium', 'something' => 'nill' ), 
array( 'url' => 'website.com2/etcetcetc', 'itag' => 18, 'quality' => 'medium', 'something' => 'nill' ), 
array( 'url' => 'website.com3/etcetcetc', 'itag' => 5, 'quality' => 'small', 'something' => 'nill' ), 
array( 'url' => 'website.com4/etcetcetc', 'itag' => 36, 'quality' => 'small', 'something' => 'nill' ), 
array( 'url' => 'website.com5/etcetcetc', 'itag' => 17, 'quality' => 'small', 'something' => 'nill' ) ); 
$no = '43';// whatever u want
foreach($os as $r)
{
   if (in_array(($r['itag'] == $no), $os)) {
   echo '<a href="'.$r['url'].'">quality: '.$r['itag'].'</a>';
   }
}

foreach循环之后使用if statement将解决您的问题。

foreach($links as $link){ //foreach loop as you said
    if($link['itag'] == '43' || $link['itag'] == '18' || $link['itag'] == '36'){ //check if the itag is 43 or 18 or 36
    //your echo here
    }
}