Php 如何从多维数组中获取值
我的db查询有一个结果,在转储时是这样的,并且查询正在执行预期的操作,但是我在获取数组值时遇到了一个小问题。我正在使用PHP PDO来获得结果Php 如何从多维数组中获取值,php,pdo,Php,Pdo,我的db查询有一个结果,在转储时是这样的,并且查询正在执行预期的操作,但是我在获取数组值时遇到了一个小问题。我正在使用PHP PDO来获得结果 $result = $_stmt->fetchAll(); $row = count($result); print_r($result); Array ( [0] => Array ( [SUM(od_price * od_qty)] => 69.85 [0] => 69.85 ) [1] =>
$result = $_stmt->fetchAll();
$row = count($result);
print_r($result);
Array ( [0] => Array ( [SUM(od_price * od_qty)] => 69.85 [0] => 69.85 )
[1] => Array ( [SUM(od_price * od_qty)] => 13.97 [0] => 13.97 )
) 69.8513.97
您可以看到结果同时包含数组和字符串值。我可以选择获取数组或字符串值。但是我更希望得到数组值,因为字符串值都在一起。有人能解释一下我在foreach循环中做了什么不对吗
if($row == 2)
{
foreach ($result as $k)
{
echo $price_1 = $k[0][0]; // expected 69.85
echo $price_2 = $k[0][1]; // expected 13.97
}
unset($k);
}
我需要得到预期的值,但是我得到的是字符串值,它们都在一起
在回顾了下面的解决方案之后,以下是我提出的能够很好地满足我需求的解决方案
$result = $_stmt->fetchAll();
$row = count($result);
$price = "";
if($row == 2)
{
foreach ($result as $k)
{
$price .= $k[0].',';
}
}
// remove the last comma
$price = substr($price, 0, -1);
list($totalPurchase, $shippingCost) = explode(",",$price);
$orderAmount = $totalPurchase + $shippingCost;
echo 'The amount is: '.$orderAmount;
将您的循环替换为以下内容:
foreach ($result as $k) // iterate through all datasets
{
echo $k[0]; // echo price of dataset
}
尝试将值存储在数组中,而不是回显
$price_1 = array(); $price_2 = array();
if($row == 2)
{
foreach ($result as $k)
{
array_push($price_1, $k[0][0]); // expected 69.85
array_push($price_2, $k[0][1]); // expected 13.97
}
// print_r($price_1); //should store all the price1s
// print_r($price_2); // should store all the price2s.
// uncomment to these lines to view array contents
}
虽然您通常需要学习多维数组和foreach,但要解决这一特定任务,您需要使用
fetchAll
,只需少量补充:
$result = $sth->fetchAll(PDO::FETCH_COLUMN, 0);
foreach ($result as $k)
{
echo $k;
}
已经有人回答了,但我在评论中看到你希望他们分开。因此,只需在回音后添加一个
“
”
或一个新行空间:
foreach ($result as $k)
{
echo $k[0]."<br>";
}
foreach($k)
{
回声$k[0]。“
”;
}
但一切都很好,您只需打印值即可显示。感谢您的快速响应,但我之前尝试过,它输出的字符串值为69.8513.97。我需要把69.85和13.97分开。@CarlBarrett要把东西分开,你还需要输出一个分隔符,谢谢你启动了我的大脑。我不知道为什么我以前没有想到这个…(漫漫长夜)!在我的应用程序中,我已经多次这样做了,所以我在上面的问题后面附加了一个解决方案,这个解决方案非常有效。我希望它可以帮助其他人。我的朋友,没有一个开发人员知道一切。因此,没有必要告诉我们需要去学习什么。你的解决方案帮不了什么忙。开发人员有时会头脑发热,开始写垃圾,这可能发生在我们中最好的人身上。我们来到这个网站是为了寻找新的想法,让我们重新开始思考。Daryl Gill提供了引起我注意的最佳想法,请参见下面的解决方案:好主意,非常感谢,但答案并不完全是我想要的,请参见上面问题所附的解决方案。