PHP循环+二维数组

PHP循环+二维数组,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我正在尝试使用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[$

我正在尝试使用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\u push,但这不是获取特定值的最佳方法。

您不需要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']);    
}

您正在循环查询的单个结果。而for循环是完全不必要的:

$myArray = array();
foreach ($connection->query($sql) as $row)
    $myArray[] = array($row['country'], $row['capital']);
}
您不需要for循环,因为您在查询中指定了列,所以只需对关联数组执行以下操作:

foreach ($connection->query($sql, PDO::FETCH_ASSOC) as $row)
    $myArray[] = $row;
}
或者,如果需要数字索引,则:

$connection->query($sql, PDO::FETCH_NUM)
或者你想访问像$myArray['England']这样的东西,然后去伦敦?然后按如下方式构建阵列:

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

你能更具体地说明你面临的实际问题吗?我试图在另一个数组中创建一个数组,但我这样做的方式不起作用,我希望能够得到一个特定的值。我不知道如何更具体,因为我怀疑在循环中创建二维数组。你放弃了吗?这些都帮不了你吗?用这种方法,我如何得到一个特定的值?例如,如果我想得到一个大写字母,它只是一个数组$myArray[3][1]我现在明白了。感谢您的提示和帮助: