将维度添加到1d数组

时间:2012-07-04 12:17:07

标签: php arrays

我有一个名为$ bigArrayWithLinks的数组,它存储一个字符串,每个元素都包含一个url。这是var_dump中的一个示例:

array
  0 => string 'http://en.wikipedia.org/wiki/England' (length=36)
  1 => string 'http://www.bbc.co.uk/news/england/' (length=34)
  2 => string 'http://www.thefa.com/' (length=21)
  3 => string 'http://www.thefa.com/England/' (length=29)

我想要做的是遍历数组,为每个元素添加一个值为'0'的整数,使其成为

array
  0 => string 'http://en.wikipedia.org/wiki/England' => int '0'
  1 => string 'http://www.bbc.co.uk/news/england/'  => int '0'
  2 => string 'http://www.thefa.com/'  => int '0'
  3 => string 'http://www.thefa.com/England/'  => int '0'

我试过了:

for($x=0; $x<sizeof($arr); $x++)
{
    $score = $arr[$x]['score'];
    $score = '0';
}

我对php很新,所以我并不感到惊讶它不起作用。有人可以帮帮我吗?提前谢谢!

3 个答案:

答案 0 :(得分:1)

foreach($bigArrayWithLinks as $key => $url) {
  $bigArrayWithLinks[$key] = array('url' => $url, 'x' => 0);
}

答案 1 :(得分:1)

您对PHP数组感到困惑。

数组是索引(或使用关联数组时的哈希),它有1(!)值。 该值可以是另一个数组。

你的第二个例子(你想要的)只是显示:

0 => string 'http://en.wikipedia.org/wiki/England' => int '0'

这没有意义。

我期待你真正想要的是这样的结构:

$mySiteScore = array(
 array('url'=>'http://en.wikipedia.org/wiki/England', 'score' =>0),
 array('url'=>'http://www.bbc.co.uk/news/england/', 'score' =>0),
 array('url'=>'http://www.thefa.com/', 'score' =>0)
);

这样就可以创建一个关联数组数组。 关联数组可以使用描述性键,如“url”或“score”。 现在,如果你想添加所有分数:

$totalScore = 0;
foreach ($mySiteScore as $oneSiteScore){
  $totalScore = $totalScore  + $oneSiteScore['score'];
}

或者:创建两个单独的数组:一个包含URL,另一个包含分数。 但是你必须确保索引匹配。

答案 2 :(得分:0)

只需制作另一个1D的零数组,索引也是一样的。

在几乎所有编程语言中,如果不重新分配和复制到新容器,“新维度”是不可能的。