Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 逗号分隔的foreach_Php_Foreach - Fatal编程技术网

Php 逗号分隔的foreach

Php 逗号分隔的foreach,php,foreach,Php,Foreach,其想法是获得一个以逗号分隔的产品列表,但该列表必须包含“产品名称(管道)产品价格*数量” 例如,如果订单包含2xABC(10.00美元)和3xDEF(20.00美元),我的输出将需要是“ABC | 20.00,DEF | 60.00” 我有以下代码: $products = $db->Execute($products_query); while (!$products->EOF) { $purchasedArray[] = array('produc

其想法是获得一个以逗号分隔的产品列表,但该列表必须包含“产品名称(管道)产品价格*数量” 例如,如果订单包含2xABC(10.00美元)和3xDEF(20.00美元),我的输出将需要是“
ABC | 20.00,DEF | 60.00
” 我有以下代码:

    $products = $db->Execute($products_query);
    while (!$products->EOF) {
        $purchasedArray[] = array('products_name'=>$products->fields['products_name'],
                                    'final_price'=>$products->fields['final_price'],
                                    'products_quantity'=>$products->fields['products_quantity']);
        $products->MoveNext();
      }
然后,我运行这样一个foreach:

foreach ($purchasedArray as $purchased) {
    $list .= $purchased['products_name'] . '|' . ($purchased['final_price']*$purchased['products_quantity']);
}
并希望输出结果:

$listFinal = implode(','. $list);
echo $listFinal; 
但是,像往常一样,我遗漏了一些东西,这不起作用任何帮助都将不胜感激


编辑:我在错误日志中收到以下错误,但没有任何回显:
PHP警告:内爆()[]:参数必须是第XXX行中的数组(参考
echo$listfail;

您只是在连接字符串,请尝试以下操作:

foreach ($purchasedArray as $purchased) {
    $formattedProducts[] = $purchased['products_name'] . '|' . ($purchased['final_price']*$purchased['products_quantity']);
}

$listFinal = implode(',', $formattedProducts);
echo $listFinal; 

当我尝试完全相同的代码时(
$products
),我得到一个致命错误“不能将queryFactoryResult类型的对象用作数组”,如果我使用
$list[]
,那么我会得到
PHP警告:内爆()[]:参数必须是数组
您不能将
$list
用作数组,b/c您将其设置为字符串,因此,为什么
内爆
不起作用。您是否完全按照我在回答中所述设置了
foreach
循环
$products
只是由每个迭代的关联元素构造的字符串数组;产品名称、最终价格等。您能否发布
var\u dump($purchasedArray)
?是的,我将c/p您的代码。我认为,
$products
无法使用,因为它已经在数据库查询中使用,而while?不知道……:)这里是var_dump:[link]Ya,你是对的,我没有看到已经分配了
$products
,只需将
$products
foreach
循环中的
$products
更改为其他内容,我更新了答案以使用
$formattedProducts
,但可以随意使用任何你想要的东西。WTF?!?!为什么这不适用于
$list[]
?我做了完全相同的事情,但我使用了
$list
而不是
$formattedProducts
,但它不起作用,现在它起作用了。。。我完全糊涂了。不过,别客气,非常感谢你的帮助!