PHP循环访问关键字数组

时间:2015-10-11 13:24:15

标签: php arrays loops

我尝试使用foreach循环遍历数组数组。我很难定位单个数组中的第二个元素来检查关键字。

foreach($data as $pos){
   if (strpos($pos[2],'are') !== false) { //Line 62//
       echo 'true';
   } else{
        echo 'idk what to do';
   }
}

之前我用过这个来从阵列中获取特定元素,但我不知道为什么我现在不能。这是我的错误:

错误:

  

未定义的偏移量: 2行:62

代码:

$url = "http://www.ted.com/";
/* store results here */
$data=array();

/* The tags you are interested in finding within the html src */
$tags=array('p','h1');
$keyword=array('technology','ideas');

/* Create the dom object with html from url */
$dom=new htmldom( file_get_contents( $url ), true );
$html=$dom->gethtml();

/* Get all tags */
$col=$html->getElementsByTagName('*');

if( $col->length > 0 ){
    foreach( $col as $tag ) {
        /* Is this a tag we are interested in? */
        if( in_array( $tag->tagName, $tags ) ){
                $data[]=array( 'tag' => $tag->tagName, 'value' => $tag->textContent );
        }
    }
}
$dom=$html=null;
/* Do stuff with the results */


foreach($data as $pos){
   if (strpos($pos[2],'are') !== false) {
       echo 'true';
   } else{
        echo 'idk what to do';
   }
}

1 个答案:

答案 0 :(得分:1)

您正在使用长度为2的数组填充data数组。这意味着您可以使用索引0和1访问它们(数组在php中基于0)。使用$pos[2],您尝试使用索引2访问它,这会导致无效的偏移异常。

一般情况下,我不会通过索引和键混合访问数组。将代码更改为$pos['value']。无论如何,这是php的一个奇怪功能。