2010-12-17 5 views
0

地獄再び、私はあなたがたときに、foreachループ内で新しい配列インデックスにデータを追加する行くのですか疑問に思って?foreachループ内で多次元配列の新しいインデックスにどのように追加しますか?

Iは気圧有するコード、下

// Connect to the database to gather all data pertaiing to the link in question 
$assoResult = mysql_query("SELECT * FROM associate_users"); 
while ($assoRow = mysql_fetch_field($assoResult)) { 
    $resultArray[] = $assoRow->name; 
} 

// Connect to the database to gather all data pertaiing to the link in question 
$assoResult2 = mysql_query("SELECT * FROM associate_users WHERE id='$getID'"); 
while ($assoRow2 = mysql_fetch_object($assoResult2)) { 

    foreach ($resultArray as $row) { 
     $array = array(array(1 => $assoRow2->$row, 2 => $row,),); 
     echo "<br />"; print_r($array); 
    }    
} 

ある "エコー "BR />から来る出力されたデータ";ますprint_r($配列);"ライン。

==============================================あなたは配列が何度も新しいが作成されて見ることができるように===================

Array ([0] => Array ([1] => 1 [2] => id)) 
Array ([0] => Array ([1] => Bob[2] => contactName)) 
Array ([0] => Array ([1] => Bob's Tyres [2] => company)) 
Array ([0] => Array ([1] => XXXXXXXXXXXXXX [2] => address1)) 
Array ([0] => Array ([1] => XXXXXXXXXXXXXX [2] => address2)) 
Array ([0] => Array ([1] => XXXXXXXXX [2] => address3)) 
Array ([0] => Array ([1] => XXXXXX [2] => postcode)) 

、私は必要なものに上記のデータのためであります=============================すべてのループ上の第一の次元のインデックスキーをインクリメントするので、それは...のよう

に見えます======================================

Array ([0] => Array ([1] => 1 [2] => id)) 
Array ([1] => Array ([1] => Bob[2] => contactName)) 
Array ([2] => Array ([1] => Bob's Tyres [2] => company)) 
Array ([3] => Array ([1] => XXXXXXXXXXXXXX [2] => address1)) 
Array ([4] => Array ([1] => XXXXXXXXXXXXXX [2] => address2)) 
Array ([5] => Array ([1] => XXXXXXXXX [2] => address3)) 
Array ([6] => Array ([1] => XXXXXX [2] => postcode)) 

ありがとうございます私はこれを仕事にして絶望的にするすべての選択肢から外れています。

ダン。

答えて

2

変更このコードは、あなたが非効率的に2つのクエリ使用せずを求め出力取得

$count=0; 
    foreach ($resultArray as $row) { 
      $array[$count][1] = $assoRow2->$row 
      $array[$count][2]=$row; 
      $count++; 
      echo "<br />"; print_r($array); 
     } 
+0

あなたのコードが完全に働いた、私はあなたが最初のSQLクエリの「のmysql_fetch_field」の私の使っていることに気づいているかどうかわからないです助け:) – zealisreal

0
//extra code.declaring array 
$array = array(); 
while ($assoRow2 = mysql_fetch_object($assoResult2)) { 
    foreach ($resultArray as $row) { 
// 1st parameter is the array name, here array name is array .give gd name according to use 
     array_push($array,array(1 => $assoRow2->$row, 2 => $row,)); 
     echo "<br />"; print_r($array); 
    }    
} 
1

にあなたのコードの一部を割り当てる値:あなたのようにそれを望むのはなぜ

// Connect to the database to gather all data pertaining to the link in question 
$result = mysql_query("SELECT * FROM associate_users WHERE id=" . (int)$getID); 

$resultArray = array(); 
$resultCount = 0; 
$row = mysql_fetch_assoc($result); 

$count = 0; 
foreach ($row as $key => $value) { 
    $temp = array(); 
    $temp[$count] = array(1 => $value, 2 => $key); 
    $count++; 

    echo "<br />"; print_r($temp); 
} 

をこれは私には分かりません。

+0

をありがとうございましたか!私は1つのクエリでフィールドフェッチを使用するため、2つを使用しています。他のオブジェクトで標準オブジェクトをフェッチします。両方とも1つのクエリに結合できれば、どのように知ることができますか?(上に示していない限り、 )? – zealisreal

+0

あなたは私たちが見ることができない何かをやっている他のいくつかのコードを持っていない限り、すべてのフィールド名を取得するために、最初のクエリと 'mysql_fetch_field'を使用する必要はありません。私のコードはあなたの質問に投稿した出力に同じ結果をもたらすはずです。あなたの質問のコードは、 'associate_users'テーブルからすべてのリンクを取り出します。ただ一つのリンクを取得するためです。 'associate_users'テーブルが大きくなると、ページが遅くなる可能性があります。あなたのテーブルが小さくなっていることを知っているなら、それがあなたのために働いているなら、あなたが持っているものに固執してください。 – thirtydot

関連する問題