PHP插入多维数组

时间:2012-09-13 13:52:23

标签: php arrays multidimensional-array

我有一个传递了一个url数组的功能。我从每个网页中提取数据,然后将每个数据分配给一个数组。这是我的功能:

 function getitems ($urls) {
  $iteminfo = array();
  foreach($urls as $link) {
   $circdl = my_curl($link);
   $circqp = htmlqp($circdl,'body');
   $itemtitle = $circqp->branch()->find('div[class="col-item"]')->children('img')->attr('title');
   $itemlink = $circqp->branch()->find('div[class="col-item"]')->children('img')->attr('src');
   $itemdesc = $circqp->branch()->find('div[class="col-item"]')->children('img')->attr('alt');
   $iteminfo[][] = $itemtitle;
   //$iteminfo[$itemtitle][] = $itemlink;
   //$iteminfo[$itemtitle][] = $itemdesc;
  }
    return $iteminfo;  
 }

我希望数组看起来像这样:

 Array ( [0] => Array ( [0] => title [1] => link [2] => desc ) [1] => Array ( [0] => title [1] => link [2] => desc ) [2] => Array ( [0] => title [1] => link [2] => desc ) ) 

但是我无法解决如何向子阵列添加其他字段的问题。

4 个答案:

答案 0 :(得分:2)

尝试这样的事情

function getitems ($urls) {
    $iteminfo = array();
    $i = 0;
    foreach($urls as $link) {
        $circdl = my_curl($link);
        $circqp = htmlqp($circdl,'body');
        $itemtitle = $circqp->branch()->find('div[class="col-item"]')->children('img')->attr('title');
        $itemlink = $circqp->branch()->find('div[class="col-item"]')->children('img')->attr('src');
        $itemdesc = $circqp->branch()->find('div[class="col-item"]')->children('img')->attr('alt');
        $iteminfo[$i][] = $itemtitle;
        $iteminfo[$i][] = $itemlink;
        $iteminfo[$i][] = $itemdesc;
        $i++;
    }
    return $iteminfo;  
}

一切正常,你只需要为每一行分配索引。

答案 1 :(得分:0)

如果我理解正确的话......

$iteminfo[] = array($itemtitle, $itemlink, $itemdesc);

答案 2 :(得分:0)

您可以轻松替换

$iteminfo[][] = $itemtitle;
//$iteminfo[$itemtitle][] = $itemlink;
//$iteminfo[$itemtitle][] = $itemdesc;

$iteminfo = array($itemtitle, $itemlink, $itemdesc);

您可以这样做,因为语法

$array = $element; // where     $array = array();

只是在PHP中向数组添加元素的另一种方式,$element也可以是array()

答案 3 :(得分:0)

function getitems ($urls) {
   $iteminfo = array();
   foreach($urls as $link) {
       $subInfo = array();
       $circdl = my_curl($link);
       $circqp = htmlqp($circdl,'body');
       $subInfo[] = $circqp->branch()->find('div[class="col-item"]')->children('img')->attr('title');
       $subInfo[] = $circqp->branch()->find('div[class="col-item"]')->children('img')->attr('src');
       $subInfo[] = $circqp->branch()->find('div[class="col-item"]')->children('img')->attr('alt');
      $iteminfo[] = $subInfo;
   }
   return $iteminfo;  
}