0

次の奇妙な問題があります。解決できません。ループは一意の部分を1回返しますが、両方のループの前に配列を埋める2つの部分は、それらのすべてに使用されます。あなたが私を助けてくれることを願っています。

$aBuild = array();
$part1 = "Test 1";
$part2 = "Test 2";  
$aBuild = array(1=> $part1, 2 => $part2);

次に、データベースからデータを取得する foreach ループがあり、同じループでこれを行います。

$aBuild[$iNumber] = $sOtherParts;

配列に物を追加します。このクエリ foreach ループの最後で、次のようにします。

ksort($aBuild);

foreach($aBuild as $values)
{
    echo  $values;  
}  

このエコーは、各 $sOtherParts を 1 回だけ行いますが、それぞれに $part1 と $part2 を追加します。

このような:

固有部分 テスト 1 テスト 2 別の固有部分 テスト 1 テスト 2 本当に固有部分 テスト 1 テスト 2 Ect.. 固有部分 テスト 1 テスト 2

4

2 に答える 2

1

キーもエコーアウトする必要があります。次の行は、元の配列のデータを置き換えていない可能性があります。

$aBuild[$iNumber] = $sOtherParts;

foreach ループを変更してキーを出力してみてください。

ksort($aBuild);

foreach($aBuild as $key => $value)
{
    echo $key." => ".$value."<br />\n";
}

実際のコードを見ないとわかりません。

于 2012-09-21T01:10:23.737 に答える
1

echo は DOS や Bash などの echo のような改行を自動的に提供しないため、echo ステートメントの最後に改行が必要です。

また、 $iNumber var が単なる増分変数である場合は、次を使用しないでください:

$aBuild[] = $sOtherParts;

そうすれば、ksortは必要ありません。

于 2012-09-21T01:13:04.377 に答える