2015-06-01 49 views
-2

我正在嘗試使用PHP創建一個二維數組,但仍然沒有弄明白。PHP循環+二維數組

$value = 3; 

$sql = "SELECT country, capital FROM world WHERE client = 2 "; 

$myArray = array(); 

try { 
    foreach ($connection->query($sql) as $row) 
    { 
     for($i=0; $i<$value; $i++){ 
      $myArray[$i] = array($row['country'], $row['capital']); 
     } 
    } 
} 

我試過「array_push」函數,但它不是獲取特定值的最佳方法。

+0

您能更具體地瞭解您所面臨的實際問題嗎? –

+0

我想在另一個數組內部創建一個數組,但是我這樣做的方式不起作用,我希望能夠獲得一個特定的值。我不知道如何更具體,因爲我懷疑是在循環內創建一個二維數組。 – BlueHatCoder

+0

你放棄了嗎?這些對你沒有幫助嗎? – AbraCadaver

回答

0

你不應該需要for循環:

$sql = "SELECT country, capital FROM world WHERE client = 2 "; 

$myArray = array(); 

foreach ($connection->query($sql) as $row) { 
    $myArray[] = array("country" => $row['country'], "capital" => $row['capital']);  
} 
0

你對你的查詢的一個結果循環。而for()循環是完全不必要的:

$myArray = array(); 
foreach ($connection->query($sql) as $row) 
    $myArray[] = array($row['country'], $row['capital']); 
} 
+0

使用這種方法,我如何獲得特定的值?例如,如果我想獲得「資本」。 – BlueHatCoder

+0

這只是一個數組。 '$ myArray [3] [1]' –

+0

我現在明白了。感謝您的提示和幫助:) – BlueHatCoder

0

你不需要for循環,因爲你是在查詢中指定的列,只是這樣做的一個關聯數組:

foreach ($connection->query($sql, PDO::FETCH_ASSOC) as $row) 
    $myArray[] = $row; 
} 

或者,如果你想那麼數字指標:

$connection->query($sql, PDO::FETCH_NUM) 

或者,也許你想訪問類似$myArray['England']並得到London?然後像這樣構建陣列:

foreach ($connection->query($sql, PDO::FETCH_ASSOC) as $row) 
    $myArray[$row['country']] = $row['capital']; 
}