0

各要素にURLを含む文字列を格納する$bigArrayWithLinksという配列があります。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に非常に慣れていないので、それが機能しなかったことに驚かされませんでした。誰かが私を助けてくれませんか?前もって感謝します!

4

3 に答える 3

1
foreach($bigArrayWithLinks as $key => $url) {
  $bigArrayWithLinks[$key] = array('url' => $url, 'x' => 0);
}
于 2012-07-04T12:24:48.690 に答える
1

PHP 配列について混乱しています。

配列はインデックス (連想配列を使用する場合はハッシュ) であり、値は 1(!) です。その値は別の配列にすることができます。

2番目の例(あなたが望むもの)は次のとおりです:

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'];
}

または、別の方法として、2 つの別個の配列を作成します。1 つは URL を含み、もう 1 つはスコアを含みます。ただし、インデックスが一致していることを確認する必要があります。

于 2012-07-04T12:28:03.130 に答える
0

ゼロの別の 1D 配列を作成するだけで、インデックスは同じになります。

ほとんどすべてのプログラミング言語では、新しいコンテナへの再割り当てとコピーなしでは「新しい次元」は不可能です。

于 2012-07-04T12:21:00.607 に答える