这是我的php文件: -
<?php
require "predis-0.8/autoload.php";
Predis\Autoloader::register();
try {
$redis = new Predis\Client();
}catch (Exception $e) {
};
$redis->del("aaa");
for($i=1;$i<=10;$i++)
{
$randNo=rand('1','5');
$ec = $redis->set("arr",$randNo);
$str = $redis->get("arr").",";
echo ($str);
}
$comma = implode(",", $str);
echo ($comma);
?>
我正在使用Redis和PHP
我试图破坏strint
但它不起作用。
还给我错误。 Warning: implode(): Invalid arguments passed
知道为什么我会收到这个警告。
提前谢谢。
答案 0 :(得分:0)
您正在寻找的功能explode
而不是implode
。
implode采用数组并将元素与之间的给定字符串连接在一起。
explode接受一个字符串,并通过删除该字符串将其拆分为找到给定字符串的位置的数组。
$arr = array( 'foo', 'bar');
$imp = implode(',', $arr); # $imp == 'foo,bar'
$exp = explode(',', $imp); # $exp == array('foo', 'bar')
编辑:
进一步阅读您的代码后。我猜你试图在redis中存储一个数组。
要实现这一点(甚至更复杂的数据结构),您需要将数据转换为字符串。实现此目标的最简单方法是serialize
和unserialize
。
$data; # contains some data , either array or objects or int or ...
$redis->set('foo', serialize($data));
$other_data = unserialize($redis->get('foo')); # $other_data == $data
答案 1 :(得分:-2)