从字符串创建php变量

从字符串创建php变量,php,Php,您好,我有一个从字符串中提取公司名称的脚本。我希望将提取的名称转换为php变量。例如,第一个结果Real Coffee Sweeden必须转换为$RealCoffeeSweeden=0,这样我就可以给它赋值 $test='/showname/0406741848 : Real Coffee Sweeden /showname/0406741849 : Healthzone SE

您好,我有一个从字符串中提取公司名称的脚本。我希望将提取的名称转换为php变量。例如,第一个结果Real Coffee Sweeden必须转换为
$RealCoffeeSweeden=0
,这样我就可以给它赋值

 $test='/showname/0406741848                              : Real Coffee Sweeden
/showname/0406741849                              : Healthzone SE
/showname/16133663413                             : FREE
/showname/16133663414                             : RadioPlantes Canada
/showname/16133663417                             : Dealsoftoday.Eu Canada
/showname/16136995593                             : FREE
/showname/16136995594                             : Club White Smile Canada
/showname/16138007442                             : FREE
/showname/16138007547                             : Mybitwave.com Canada
/showname/16465596150                             : BABY
/showname/16465696956                             : FREE
/showname/16465696957                             : FREE
/showname/16467419944                             : Mybitwave.com UK
/showname/16469181975                             : FREE
/showname/21501350                                : SecureSurf.EU NO
/showname/21501351                                : FileCloud365 Norwegian
/showname/21501352                                : FREE
/showname/21501353                                : RadioPlantes Norwegian
';


$myRows= explode("\n", $test);

foreach( $myRows as $key => $value) {
    $pieces = explode(":", $value);

    $result[] =  $pieces[1];
}

foreach ($result as $res){
    $res // covert to php variable
    //example: $RealCoffeeSweeden = 0;
}

你应该使用一个数组。但是如果你想用你写的方式来写,你可以简单地做这样的事情:

foreach( $myRows as $key => $value) {
    $pieces = explode(":", $value);

    $res = str_replace(' ', '', $pieces[1]); // replace whitespaces for valid names
    $$res = 0; // note the double dollar signs
}
如果要使用数组tho,请执行以下操作:

$result = [];
foreach( $myRows as $key => $value) {
    $pieces = explode(":", $value);

    $key = str_replace(' ', '', $pieces[1]);
    $result[$key] = 0;
}
根据您的评论,使用以下内容更改foreach循环中的最后第二行:

$res = str_replace(' ', '', $res) . '_f';

你可以这样试试

  $my_array = explode("\n", $test);
  foreach($my_array as $key => $value {
     $my_string = explode(':', $value)
      ${str_replace(' ','', $my_string[1])} = $my_string;
      echo $$my_string; 
  }

无法测试,但您需要变量,如foreach之后的变量`$$res=$res;'//创建名为$resVariable variables的变量,演示:。你注意到了吗,你有不止一个名字
免费的
,例如,你打算用这些名字做什么?好的,这是可行的,如果我想在
$RealCoffeeSweeden\u f
中添加$RealCoffeeSweeden我该怎么做?:)更新了我的答案,非常简洁。这可能直接进入第一个foreach,第二个foreach就不会了needed@Duane该代码用于构建DINAMILCALL变量。。对于获取字符串,OP应使用explode。。在一个适当的嵌套foreach中..哦,还有另一个我不认识的输入错误(在Real..Sweeden之前丢失)。在任何解决方案中都不需要第二个循环。