Цикл Foreach в многомерном массиве PHP возвращает совершенно неверные результатыPhp

Кемеровские программисты php общаются здесь
Anonymous
Цикл Foreach в многомерном массиве PHP возвращает совершенно неверные результаты

Сообщение Anonymous »

У меня есть довольно простой запрос MYSQL, который извлекает сведения о продаже и сохраняет их в массиве (я упростил его, просто используя 1 saleid, который имеет только одну строку сведений о продажах — другие продажи будут получать несколько строк из сведений о продажах). При выполнении var_dump для массива все выглядит нормально, однако когда я запускаю цикл foreach для получения трех фрагментов данных, я не получаю правильный результат.
var_dump показывает, что информация существует в массиве правильно, поэтому я предполагаю, что делаю что-то не так при ее получении.

Код: Выделить всё

$selectoneSale = "SELECT saleid, category, productid, quantity FROM salesdetails WHERE saleid IN (74408)";
try
{
$results2 = $pdo3->prepare("$selectoneSale");
$results2->execute();
}
catch (PDOException $e)
{
$error = 'Error fetching data: ' . $e->getMessage();
echo $error;
exit();
}
while ($row = $results2->fetch()) {

$saleid = $row['saleid'];
$category = $row['category'];
$productid = $row['productid'];
$quantity = $row['quantity'];

$salesdetailsArray[$saleid]['category'] = $category;
$salesdetailsArray[$saleid]['productid'] = $productid;
$salesdetailsArray[$saleid]['quantity'] = $quantity;

}

var_dump($salesdetailsArray);
echo "

";

foreach ($salesdetailsArray[74408] as $onesale) {

echo $onesale['category'] . ".
";
Результат SQL (из PHPMyAdmin):
Изображение

Вывод var_dump:
array(1) { [74408]=> array(3) { ["category"]=> int(1) ["productid"]=> int(291) ["quantity"]=> string(4) "5.00" }
Вывод цикла foreach:
.

.

.

.

.

.

5.

5.

5.
Ожидаемый результат:
1.

291.

5.
Что я делаю не так с циклом foreach?
Надеюсь, кто-нибудь сможет помочь!

Вернуться в «Php»