将数组的第一个元素转换为PHP中的字符串

Dar*_*ric 36 php arrays string object

我有一个PHP数组,并希望将其转换为字符串.

我知道我可以使用joinimplode,但在我的情况下,数组只有一个项目.为什么我必须在一个只有一个项目的数组中使用组合值?

这个数组是我的PHP函数的输出,它返回一个数组:

Array(18 => 'Something');
Run Code Online (Sandbox Code Playgroud)

如何将其转换为字符串?

Ber*_*rak 36

有没有其他方法将该数组转换为字符串?

您不希望将数组转换为字符串,如果我正确读取它,您希望获取数组唯一元素的值.

<?php
  $foo = array( 18 => 'Something' );
  $value = array_shift( $foo );
  echo $value; // 'Something'.

?>
Run Code Online (Sandbox Code Playgroud)

使用array_shift,您不必担心索引.

编辑:请注意,array_shift不是唯一会返回单个值的函数.array_pop(),current(),end(),reset(),它们都将返回一个单独的元素.所有发布的解决方案都有效.使用数组移位,您可以确保只获得数组的第一个值,即使存在多个数组.

  • 使用最有效的方法来实现目标没有任何问题,但我发现array_shift更能描述目标,所以我使用它.reset()在性能方面略微**,但它没有很好地传达其目标,所以我选择了array_shift.这不是矫枉过正,这是一个明智的选择.微笑. (2认同)

Sal*_*n A 28

有没有其他方法将该数组转换为字符串?

就在这里.serialize().它可以将各种数据类型(包括对象和数组)转换为字符串表示形式,unserialize()以后可以使用.序列化关联数组,例如Array(18 => 'Somthing')将保留键和值:

<?php
$a = array(18 => 'Something');
echo serialize($a);                                   // a:1:{i:18;s:9:"Something";}
var_dump(unserialize('a:1:{i:18;s:9:"Something";}')); // array(1) {
                                                      //   [18]=>
                                                      //   string(9) "Something"
                                                      // }
Run Code Online (Sandbox Code Playgroud)


小智 11

为PHP字符串数组创建数组的简单方法是:

<?PHP
    $array = array("firstname"=>"John", "lastname"=>"doe");
    $json = json_encode($array);
    $phpStringArray = str_replace(array("{", "}", ":"), 
                                  array("array(", "}", "=>"), $json);
    echo phpStringArray;
?>
Run Code Online (Sandbox Code Playgroud)

  • 这是最好的答案 (2认同)
  • 虽然我有点晚了:这似乎不是最好的解决方案.如果你想这样做,只需调用`var_export($ array,true);`,它会做的几乎相同,但更好. (2认同)

Pao*_*fan 8

你可以使用reset()函数,它将返回第一个数组成员.


Joh*_*ove 6

implode或者join(他们是完全相同的东西)会在这里工作.或者,您只需调用array_pop并获取数组中唯一元素的值即可.


Jon*_*nco 5

如果您的目标是将数组输出到字符串以进行重新分配:您可以使用print_r()函数,它接收表达式参数(您的数组)和可选的布尔返回参数.通常该函数用于回显数组,但如果将return参数设置为true,则它将返回数组印象.

例:

    //We create a 2-dimension Array as an example
    $ProductsArray = array();

    $row_array['Qty'] = 20;
    $row_array['Product'] = "Cars";

    array_push($ProductsArray,$row_array);

    $row_array2['Qty'] = 30;
    $row_array2['Product'] = "Wheels";

    array_push($ProductsArray,$row_array2);

    //We save the Array impression into a variable using the print_r function
    $ArrayString = print_r($ProductsArray, 1);

    //You can echo the string
    echo $ArrayString;

    //or Log the string into a Log file
    $date = date("Y-m-d H:i:s", time());
    $LogFile = "Log.txt";
    $fh = fopen($LogFile, 'a') or die("can't open file");
    $stringData = "--".$date."\n".$ArrayString."\n";
    fwrite($fh, $stringData);
    fclose($fh);
Run Code Online (Sandbox Code Playgroud)

这将是输出:

Array
(
    [0] => Array
        (
            [Qty] => 20
            [Product] => Cars
        )

    [1] => Array
        (
            [Qty] => 30
            [Product] => Wheels
        )

)
Run Code Online (Sandbox Code Playgroud)