Php 试图在数组内循环

Php 试图在数组内循环,php,Php,我正在处理一个PHP文件 我通过POST接收到一个字符串数组: $str = (45,42,12,); 首先,我删除最后一个逗号: $str = substr($string_temas,0,-1); 我明白了 $str = (45,42,12); 为了检查它,我附和了它: echo "str value=".$str; 我得到的结果是: str值=45,42,12 然后我尝试为每个项目循环,如下所示: foreach ($str as $value) { } 但我得

我正在处理一个PHP文件

我通过POST接收到一个字符串数组:

$str = (45,42,12,);
首先,我删除最后一个逗号:

$str = substr($string_temas,0,-1);
我明白了

$str = (45,42,12);
为了检查它,我附和了它:

echo "str value=".$str;
我得到的结果是:

str值=45,42,12

然后我尝试为每个项目循环,如下所示:

foreach ($str as $value) {

        }
但我得到了一个错误:

为foreach提供的参数无效,在…..行foreach$str中为$value{

我做错了什么?

如果最后一个字符串是45,42,12,那么可以使用PHP函数


在循环之前,您需要有一个数组。您可能希望输入字符串:

$array = explode(',', $str);
foreach ($array as $value) {
 // code here...
}

因为您循环字符串变量。 要将字符串转换为数组,可以使用explode函数

foreach (explode(",", $str) as $value) {
    ...
}

您将只从请求数据接收字符串,而不是数组。使用“分解”将逗号分隔的数据拆分为数组

$arr=explode(',',$str);

然后您可以循环执行此操作。

您正在尝试循环字符串而不是数组。您是在post数据中获得45,42,12还是45,42,12?您应该使用原始数组。您必须分解字符串如果您在post中获得45,42,12,并带有尾随,您还应该修复发送的内容。这是正确的解决方案,而不是使用string对于foreach,您应该使用数组。@mvasco请接受正确的答案,因为它对将来的其他用户有用。
$arr=explode(',',$str);