Dar*_*ric 36 php arrays string object
我有一个PHP数组,并希望将其转换为字符串.
我知道我可以使用join或implode,但在我的情况下,数组只有一个项目.为什么我必须在一个只有一个项目的数组中使用组合值?
这个数组是我的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(),它们都将返回一个单独的元素.所有发布的解决方案都有效.使用数组移位,您可以确保只获得数组的第一个值,即使存在多个数组.
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)
如果您的目标是将数组输出到字符串以进行重新分配:您可以使用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)