如何判断数组中Payment_type并按类型提取对应amount值
嘿,我来帮你搞定这个需求~你现在需要把数组里的金额按Payment_type分组,然后按指定格式输出对吧?你原来的foreach只是逐个判断输出,但没先做分组处理,所以没法先输出类型标题再列对应的金额。
这里给你一个可行的方案,分两步走:先把原数组按Payment_type分组,再遍历分组后的结果输出格式内容:
// 你的原始数据(如果是对象数组的话,把数组访问改成对象属性访问即可) $data = [ ["Payment_type" => 1, "amount" => 10000], ["Payment_type" => 1, "amount" => 40000], ["Payment_type" => 2, "amount" => 10000], ["Payment_type" => 2, "amount" => 20000] ]; // 第一步:按Payment_type分组,把同类型的amount归到一起 $groupedData = []; foreach ($data as $item) { $type = $item['Payment_type']; // 如果当前类型还没创建数组,先初始化 if (!isset($groupedData[$type])) { $groupedData[$type] = []; } $groupedData[$type][] = $item['amount']; } // 第二步:按要求格式输出 foreach ($groupedData as $type => $amounts) { // 输出类型标题 echo "Payment type $type\n"; // 输出每个金额,前面加--- foreach ($amounts as $amount) { echo "---$amount\n"; } }
如果你的$data里的元素是对象(比如你原来代码里用$d->Payment_type),那只需要把代码里的$item['Payment_type']改成$item->Payment_type,$item['amount']改成$item->amount就可以了。
运行这段代码后,就能得到你期望的输出:
Payment type 1 ---10000 ---40000 Payment type 2 ---10000 ---20000
内容的提问来源于stack exchange,提问作者user8758118
相关产品推荐
相关产品推荐

