2015-06-01 52 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']; 
}