php - 虽然循环它只打印我 1 个值,它是最后一个
问题描述
我正在尝试将我的数组打印为表格,但实际上它并没有真正在数组内部循环,它只打印我的最后一个值
<?php
$url='http://myurl.com/';
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL, $url);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
$html = curl_exec($curl);
;
$pro=array();
preg_match_all("/<td>[0-9]{1,3}(\.[0-9]{3})*.[0-9]+DA<\/td>",$html,$match);
$pro['prix']=$match['0'];
preg_match_all('!<td><a href=".*">\K(.+?(?=<\/a><\/td>))!',$html,$match);
$pro['nom']=$match['0'];
$currencies = array_combine($pro['nom'], array_chunk($pro['prix'], 2));
foreach ($currencies as $currency => list($sell, $buy)) {
$output = ' <td data-th="currency">'.$currency.'</td> <td data-th="sellprice">'.$sell.'</td> <td data-th="buyprice">'.$buy.'</td> ';
}
curl_close($curl);
?>
<table class="rwd-table">
<tr>
<th>Devises</th>
<th>Achat</th>
<th>Vente</th>
</tr>
<?php echo $output ?>
</table>
我希望看到所有 11 个值,但我只看到一个,它是最后一个,当我执行 var_dump 时它显示得很好并且它正确打印了所有数组
**问题是我忘记了 $output 。= 并在开始时创建空的 $output ='' 感谢您的帮助!现在工作正常!**
解决方案
您需要连接您的$output
变量,否则它只会显示最后一个变量,因为该变量会在循环的每次迭代中重新分配。
只需更改$output =
为$output .=
编辑:您应该在循环之前使用空字符串实例化变量,因为您无法连接到未声明的变量,并且会引发错误。$output ='';
在循环开始之前添加
推荐阅读
- ios - 检查是否在特定日期添加了领域数据
- html - 如何在 Rails 中通过 Twilio 发送短信?
- intel - MRENCLAVE 值如何在英特尔 SGX 远程认证中发挥作用?
- asp.net - 设置我的 dotnet 应用程序 docker 时出错
- postgresql - 如何将 PostgreSQL 数据从 Postgres.app 版本迁移到 Homebrew 安装版本
- php - Laravel 与 artisan serve 合作,但不适用于 vhost
- php - InvalidArgumentException: "\string$filter" 不是 $objectManager->get() 的有效 Fqsen
- email - 从 Protonmail 将邮件导入 Mailcow
- php - Laravel - 为什么在我的工厂中,员工在创建完成之前而不是之后工作?
- angular - 将 Routerlink 作为字符串检索?