Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.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中将字符串拆分/分解为带编号的列表?_Php_Explode_Implode_Preg Split - Fatal编程技术网

如何在PHP中将字符串拆分/分解为带编号的列表?

如何在PHP中将字符串拆分/分解为带编号的列表?,php,explode,implode,preg-split,Php,Explode,Implode,Preg Split,我正在尝试将此字符串拆分为带编号的列表 str选项是“你好,你好,你好” 我需要输出为 你好 你好 你好 这是我的密码 $newstr = 'My values are' . explode(",", $str["options"]) . '<br/>'; $newstr='My values are'。分解(“,”,$str[“选项])。'; 但是,这会导致仅打印单词数组。请帮助我:((a)explode()用逗号将字符串作为数组 b)

我正在尝试将此字符串拆分为带编号的列表

str选项是“你好,你好,你好”

我需要输出为

  • 你好
  • 你好
  • 你好
  • 这是我的密码

    $newstr = 'My values are' . explode(",", $str["options"]) . '<br/>';
    
    $newstr='My values are'。分解(“,”,$str[“选项])。'
    但是,这会导致仅打印单词数组。请帮助我:((

    a)
    explode()
    用逗号将字符串作为数组

    b) 迭代并连接数字和文本

    c) 将所有这些连接的值保存为一个字符串

    d)
    echo
    此字符串在末尾

    <?php
    $str["options"] = "Hello,Howdy,Hola";
    $data = explode(",", $str["options"]);
    
    $newstr = 'My values are'. PHP_EOL;
    foreach($data as $key => $value){
        $number = $key+1;
        $newstr .= "$number.". $value . PHP_EOL;
    }
    echo $newstr;
    

    试试这个,它会在html列表标签中打印出来

       <ol>
    
       <?php 
    
       $option = '';
    
       $newstr =  explode(",", $str["options"]) ;
    
       foreach($newstr as $option) {
    
       $option = trim($option); ?>
    
       <li><?php echo $option; ?></li>
    
      <?php } ?>
    
      </ol>
    
    
    
  • 首先,您需要创建
    数组。这将创建一个索引数组,从0到2开始索引。接下来,您将需要以某种方式对其进行修改。其他答案更明确,并使用
    foreach
    ,因此此答案提供了另一种选择,您可以通过将数组转换为所需的格式。传递给
    数组映射
    函数
    是一个所谓的回调,一个
    函数
    ,由
    数组映射
    为每个元素执行,在这种情况下,它知道每个元素的键和值。现在,我们对输入进行内爆,为了确保我们有一些键,我们传递结果

    $input=explode(“,”,“你好,你好,你好”;
    $output=内爆(“
    ”,数组映射( 函数($v,$k){ 回报($k+1)。'.$v; }, $input, 数组_键($input) ));
    不能输出带有echo的数组,也不能在字符串连接上下文中使用它。写一个循环遍历各个数组元素,并将它们逐个附加到字符串中,或者使用
    内爆
    将数组再次转换为字符串,并在各个元素之间附加任何需要的内容。就像gem一样工作!非常感谢你!谢谢你的回答。你解释得很好,让我更容易理解。但是,$output IMPODE出现语法错误,提示意外的标识符“IMPODE”…我无法传递此代码。。有什么想法吗?@user6345655谢谢你指出这一点。这确实是我的代码中的一个输入错误,显然我没有将
    =
    字符置于$output和infrade之间。编辑了我的答案,我也试过了。然而,它只是打印出数字1。其余的都是空的(
    $input = explode(",", "Hello,Howdy,Hola");
    $output = implode('<br>', array_map(
        function ($v, $k) {
            return ($k + 1).'. '.$v;
        }, 
        $input, 
        array_keys($input)
    ));