Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 检查数组值是否存在,然后显示第二个值_Php_Arrays - Fatal编程技术网

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

Php 检查数组值是否存在,然后显示第二个值,php,arrays,Php,Arrays,我得到的数组如下: 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&qualit

我得到的数组如下:

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每次都不一样,所以我不能用php保存url,这意味着它必须从数组中获取url/链接

目前我展示的是:

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

下面是我想用的脚本/代码(它是由我的一个朋友制作的,但他现在几天都不在那里)

foreach($links作为$link){
回声“
”; }
您可以遍历数组,如果数组中有您要查找的号码,则对其进行回显,如下所示:

$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);
或者,如果您想使用数组作为输入,因此不必对每个数字都进行输入,只需将其包装在另一个
foreach
循环中,在新的
$numbers
数组的元素之间循环,如下所示:

$number = 22;

foreach($links as $link) { 
    parse_str($link,$r); 
    if ($r['itag'] == $number)
        echo '<a href="'.$r['url'].'">quality: '.$r['itag'].'</a><br />';
}
$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 />';
    }
}
$numbers=数组(17,22,36);
foreach($number作为$number){
foreach($links作为$link){
parse_str($link,$r);
如果($r['itag']==$number)
回声“
”; } }
$array=array(
数组('url'=>'website.com1/etcetc','itag'=>43','quality'=>'medium','something'=>'nill'),
数组('url'=>'website.com2/etcetc','itag'=>18','quality'=>'medium','something'=>'nill'),
数组('url'=>'website.com3/etcetc','itag'=>5','quality'=>'small','something'=>'nill'),
数组('url'=>'website.com4/etcetc','itag'=>36','quality'=>'small','something'=>'nill'),
数组('url'=>'website.com5/etcetc','itag'=>17,'quality'=>'small','something'=>'nill');
$no='43';//你想要什么都行
foreach($os作为$r)
{
if(在_数组中($r['itag']==no,$os)){
回声';
}
}

foreach
循环之后使用
if语句将解决您的问题

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

    }

}

你可以使用。伙计,你的编辑极大地改变了整个问题!!!webeno但是我需要帮助,这样你就可以每次改变数组。所以我添加了显示数组的字符串$数组=数组($r);但它不起作用(我没有改变任何其他内容)我的php给出的数组是这样的:数组([url]=>website.com5/etcetc[itag]=>17[quality]=>[type]=>video;codecs=“avc1.64001F,mp4a.40.2”[url][something]=>nill),但你的脚本使用的是这种数组,数组('url'=>'website.com5/etcetc','itag'=>17,'quality'=>'small','something'=>'nill')我的一个不工作,我试过了。在你的代码中,如果我做这个打印($array);我得到的数组就像这个数组([0]=>array([url]=>[itag]=>43[quality]=>medium[质量]=>medium[某种东西]=>nill[1]=>Array([url]=>[itag]=>18[quality]=>medium[something]=>nill)[2]=>Array([url]=>[itag]=>5[quality]=>small[something]=>nill]),但在我的生活中,我得到的是这样的:Array([0]=>数组([quality]=>hd720[itag]=>22[url]=>)数组([0]=>Array([quality]=>medium[itag]=>43[url]=>)数组([0]=>Array([quality]=>medium[itag]=>18[url]=>))因此,你的数组与1、2、3、4排列在一起,但在我的数组中,我认为这就是问题所在。老实说,我不知道你是如何得到这个数组的,对我来说,它看起来像是循环通过一个数组,然后每次都使用
print\r
,因为它看起来就像是一系列相邻的数组……如果你原来的数组真的是打开的话e在你的问题之上,按照你指定的方式进行foreach循环,你根本不可能得到你提到的其他数组,所以请确保你共享完整的代码,否则整个事情将毫无意义!单击“edited X xxx ago”查看我所做的编辑,这样你就可以学习如何正确格式化你的答案(或问题) ;)
   $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($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

    }

}