Array(18 => 'Something');
如何将此转换为字符串?有没有其他方法可以将该数组转换为字符串?
你不想把数组转换成字符串,你想要获取该数组唯一元素的值,如果我理解正确。
<?php
$foo = array( 18 => 'Something' );
$value = array_shift( $foo );
echo $value; // 'Something'.
?>
使用array_shift函数,您不必担心索引。
注意:array_shift并不是唯一会返回单个值的函数。array_pop(), current(), end(), reset()等函数都会返回单个元素。所有已发布的解决方案都有效。然而,使用array_shift,您可以确保始终只获取数组的第一个值,即使有多个值也是如此。
reset
和 array_shift
都是用来操作数组的函数,但它们之间有一个重大的区别。array_shift
会移除数组中的第一个元素并保持内部指针不变,而 reset
则会保留数组但重置内部指针。 - bzeaman有其他的方法将该数组转换为字符串吗?
是的,有。可以使用
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"
// }
将数组转换为 PHP 字符串数组的简单方法是:
<?PHP
$array = array("firstname"=>"John", "lastname"=>"doe");
$json = json_encode($array);
$phpStringArray = str_replace(array("{", "}", ":"),
array("array(", "}", "=>"), $json);
echo phpStringArray;
?>
{
、}
或 :
,代码将无法正常工作。您需要一个适当的解析器。 - bcoscavar_export($array, true);
,它会做得更好,而且几乎相同。 - Berry Langerakreset()
与其他数组一起使用。 - binaryLVimplode
或者 join
(它们是完全相同的)可以在这里使用。或者,您可以只调用array_pop
并获取数组中唯一元素的值。
//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
)
)
$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();
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
?>
$dizin.=("'$dizi[$i]',");
现在,$dizin包含了$dizi数组中所有值,并在每个值之间插入了逗号。$dizin = 'mother', 'father', 'child',
这是一个字符串,但它多了一个逗号 :)
然后我们删除了最后一个逗号,substr($dizin, 0, -1);
输出:
'母亲','父亲','孩子'
implode(array, separator)
:<?php
$ar = array("parth","raja","nikhar");
echo implode($ar,"/");
?>
Use the PHP join
function like this:
$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;
Which delimits the items in the array by comma into a string:
4,1,8
Or use the PHP implode
function like this:
$my_array = array(4, 1, 8);
echo implode($my_array);
Which prints:
418
Here is what happens if you join or implode key value pairs in a PHP array
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>