【问题标题】:convert array into string in PHP在PHP中将数组转换为字符串
【发布时间】:2011-05-15 09:36:00
【问题描述】:

我有一个类似 PHP 的数组:

$a = array('110','111','121');

我想把它转换成:

$b = " '110' , '111' , '121' ";

PHP 中有什么函数可以做到吗?我知道这可以通过对数组进行循环并将值放入 $b 来完成,但我想要一个更少代码的解决方案。

谢谢。

【问题讨论】:

标签: php arrays


【解决方案1】:

您确实需要所有这些空格和引号吗?你仍然可以使用implode,尽管array_reduce 可能会更好

$a = array(1, 2, 3, 4);

$x = "'".implode("' , '", $a)."'";

array_reduce:

$x = array_reduce($a, function($b, $c){return ($b===null?'':$b.' , ')."'".$c."'";});

array_reduce 的优点是您将获得空数组的 NULL,而不是 ''。请注意,您不能在 5.3 之前的 php 版本中使用此内联函数构造。您需要将回调设为一个单独的函数,并将其名称作为字符串传递给 array_reduce。

【讨论】:

  • 获得 NULL 而非获得空字符串并不是一个优势。您必须检查返回类型,而不仅仅是能够使用它。让函数返回单一类型总是更好的选择。
  • 您得到的不是空字符串,而是包含两个引号的字符串。 :) 所以你可能还需要检查一下。如果是这样,检查 null 比检查一些晦涩的内容(如两个单引号)更合乎逻辑和方便。当然,您总是可以选择先内爆,然后再添加引号。或者您可以将 array_reduce 的结果类型转换为 string ,这会将您的 NULL 转换为空字符串。
  • 您得到了带引号的字符串,因为您的实现存在缺陷。函数和方法不应返回 null。让他们返回一个null object - 或者在这种情况下,一个空字符串。当您返回 null 时,您实际上是在返回开发人员必须检查的状态消息。
【解决方案2】:

【讨论】:

    【解决方案3】:

    这是一种不同的方法

    $arraystring = print_r($your_array, true); 
    

    如果你想在其他地方打印,那么

    $arraystring = '<pre>'.print_r($your_array, true).'</pre>';
    

    如果你这样做,你可以混合许多数组和变量

    ob_start();
    print_r($var1);
    print_r($arr1);
    echo "blah blah";
    print_r($var2);
    print_r($var1);
    $your_string_var = ob_get_clean();
    

    【讨论】:

      【解决方案4】:

      使用implode 函数。

      $b = " '" . implode("' , '", $a) . "' ";
      

      【讨论】:

        【解决方案5】:

        非常好的输出给了

        $arraystring = json_encode($your_array);
        

        【讨论】:

          猜你喜欢
          • 2012-04-16
          • 1970-01-01
          • 2023-03-09
          • 1970-01-01
          • 2018-01-29
          • 2013-08-12
          • 2021-12-27
          • 1970-01-01
          相关资源
          最近更新 更多