【问题标题】:How to Split/Explode a string into a numbered lists in PHP? [closed]如何在 PHP 中将字符串拆分/分解为编号列表? [关闭]
【发布时间】:2021-04-24 17:02:55
【问题描述】:

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

str 选项是“Hello,Howdy,Hola”。

我需要输出是

  1. 你好
  2. 你好
  3. 你好

这是我的代码

$newstr = 'My values are' . explode(",", $str["options"]) . '<br/>';

但是,这会导致只打印单词 Array。请帮我解决这个问题:((

【问题讨论】:

  • 你不能用 echo 输出一个数组,或者在字符串连接上下文中使用它。要么编写一个 loop 来遍历各个数组元素,然后将它们一一附加到您的字符串中,或​​者使用 implode 将您的数组再次转换为字符串,并添加任何需要的内容 在各个元素之间。

标签: php explode implode preg-split


【解决方案1】:

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;

https://3v4l.org/lCYMk

注意:- 您也可以使用 &lt;br&gt; 代替 PHP_EOL

【讨论】:

  • 像宝石一样工作!非常感谢!
【解决方案2】:

首先,您需要explode 您的array。这将创建一个索引数组,该数组从 0 到 2 开始索引。接下来,您需要以某种方式 implode 它。其他答案更明确并使用foreach,因此这个答案提供了一种替代方法,您可以通过array_map 将数组转换为所需的格式。传递给array_mapfunction 是所谓的回调,functionarray_map 为每个元素执行,在这种情况下,它知道每个元素的键和值。现在,我们对输入进行内爆,为了确保我们有一些键,我们传递了array_keys 的结果。

$input = explode(",", "Hello,Howdy,Hola");
$output = implode('<br>', array_map(
    function ($v, $k) {
        return ($k + 1).'. '.$v;
    }, 
    $input, 
    array_keys($input)
));

【讨论】:

  • 感谢您的回答。你解释得很好,让我更容易理解。但是,我在 $output implode 处出现语法错误,提示意外标识符“implode”...我无法传递此代码。有什么想法吗?
  • @user6345655 感谢您指出这一点。这确实是我的代码中的一个错字,显然我没有将= 字符推到 $output 和 implode 之间。编辑了我的答案。
【解决方案3】:

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

   <ol>

   <?php 

   $option = '';

   $newstr =  explode(",", $str["options"]) ;

   foreach($newstr as $option) {

   $option = trim($option); ?>

   <li><?php echo $option; ?></li>

  <?php } ?>

  </ol>

【讨论】:

  • 我也试过这个。但是它只打印出数字 1。其余的都是空的.. :(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-02-16
  • 2022-01-26
  • 2021-05-06
  • 2021-12-18
相关资源
最近更新 更多