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

时间:2011-06-07 07:54:18

标签: php arrays string object

我有一个PHP数组,想要将其转换为字符串。

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

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

Array(18 => 'Something');

如何将其转换为字符串?

13 个答案:

答案 0 :(得分:36)

  

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

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

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

?>

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

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

答案 1 :(得分: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"
                                                      // }

答案 2 :(得分:11)

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

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

答案 3 :(得分:8)

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

答案 4 :(得分:6)

implodejoin(它们完全相同)会在这里起作用。或者,您只需调用array_pop并获取数组中唯一元素的值。

答案 5 :(得分: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);

这将是输出:

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

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

)

答案 6 :(得分:4)

您可以使用print_r和html解释它,将其转换为带有这样的换行符的字符串:

$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();

答案 7 :(得分:4)

For()循环非常有用。您可以将数组的值添加到另一个变量中,如下所示:

<?php
    $dizi=array('mother','father','child'); //This is array

    $sayi=count($dizi);
    for ($i=0; $i<$sayi; $i++) {
        $dizin.=("'$dizi[$i]',"); //Now it is string...
    }
         echo substr($dizin,0,-1); //Write it like string :D
?>

在此代码中,我们将$ dizi的值和逗号添加到$ dizin:

$dizin.=("'$dizi[$i]',");

现在

$dizin = 'mother', 'father', 'child',

这是一个字符串,但它有一个额外的逗号:)

然后我们删除了最后一个逗号substr($dizin, 0, -1);

输出:

  

'母亲', '父亲', '孩子'

答案 8 :(得分:2)

由于仅在导出数组时出现空白问题,因此可以将原始var_export()用于所有其他变量类型。此功能完成工作,并且从外部起,与var_export()的工作方式相同。

<?php

function var_export_min($var, $return = false) {
    if (is_array($var)) {
        $toImplode = array();
        foreach ($var as $key => $value) {
            $toImplode[] = var_export($key, true).'=>'.var_export_min($value, true);
        }
        $code = 'array('.implode(',', $toImplode).')';
        if ($return) return $code;
        else echo $code;
    } else {
        return var_export($var, $return);
    }
}

?>

http://www.php.net/manual/en/function.var-export.php#54440

答案 9 :(得分:2)

在PHP中将数组转换为字符串:

  1. 使用PHP join函数,如下所示:

    $my_array = array(4, 1, 8);
    
    print_r($my_array);
    Array
    (
        [0] => 4
        [1] => 1
        [2] => 8
    )
    
    $result_string = join(',', $my_array);
    echo $result_string;
    

    将逗号中的项目用逗号分隔为字符串:

    4,1,8
    
  2. 或者像这样使用PHP implode函数:

    $my_array = array(4, 1, 8);
    echo implode($my_array);
    

    打印哪些:

    418
    
  3. 如果您在PHP数组中加入或破坏键值对,会出现以下情况

    php> $keyvalues = array();
    
    php> $keyvalues['foo'] = "bar";
    
    php> $keyvalues['pyramid'] = "power";
    
    php> print_r($keyvalues);
    Array
    (
        [foo] => bar
        [pyramid] => power
    )
    
    php> echo join(',', $keyvalues);
    bar,power
    php> echo implode($keyvalues);
    barpower
    php>
    

答案 10 :(得分:2)

使用PHP中的内置函数implode(array, separator)

<?php
    $ar = array("parth","raja","nikhar");
    echo implode($ar,"/");
?>

结果:parth / raja / nikhar

答案 11 :(得分:1)

在PHP中将数组转换为字符串:

使用PHP join函数,如下所示:

$my_array = array(4,1,8);

print_r($my_array);
Array
(
    [0] => 4
    [1] => 1
    [2] => 8
)

$result_string = join(',' , $my_array);
echo $result_string;

将逗号中的项目用逗号分隔为字符串:

4,1,8

答案 12 :(得分:0)

为了完整和简单起见,以下内容应该没问题:

$str = var_export($array, true);

在我的案例中它完成了很好的工作,但其他人似乎有空白问题。在这种情况下,ucefkh的答案提供了PHP手册中注释的解决方法。