Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Strict Standards错误,尝试将字符串反转为数组_Php_Arrays - Fatal编程技术网

Php Strict Standards错误,尝试将字符串反转为数组

Php Strict Standards错误,尝试将字符串反转为数组,php,arrays,Php,Arrays,因此,我有一个字符串,其值以逗号分隔: $accounts = "1,2,3,4,5,6"; 我想颠倒顺序。所以我写了这个: $accountsrev = implode(',',rsort(explode(',',$accounts))); 基本上,我转换成一个数组,反转数组,并将其内爆成一个字符串。怎么了 我遇到了很多这样的错误: 严格标准:第121行的/home/username/public_html/file.php中只能通过引用传递变量 警告:内爆():在第1

因此,我有一个字符串,其值以逗号分隔:

$accounts = "1,2,3,4,5,6";
我想颠倒顺序。所以我写了这个:

$accountsrev = implode(',',rsort(explode(',',$accounts)));
基本上,我转换成一个数组,反转数组,并将其内爆成一个字符串。怎么了

我遇到了很多这样的错误:

严格标准:第121行的/home/username/public_html/file.php中只能通过引用传递变量

警告:内爆():在第121行的/home/username/public_html/file.php中传递的参数无效


编辑: 现在我想知道我构建$accounts变量的方法是否错误。我从数据库中提取7行,然后在while循环中构建$accounts变量。
id
是数据库中的一个整数:

$accounts = '';
$i = 1;
while ($data = $getdata->fetch(PDO::FETCH_ASSOC)) {
    if ($i < 7) {
        $accounts .= $data['id'].',';
    } else {
        $accounts .= $data['id'];
    }
    $i++;
}
$accounts='';
$i=1;
而($data=$getdata->fetch(PDO::fetch_ASSOC)){
如果($i<7){
$accounts.=$data['id'.',';
}否则{
$accounts.=$data['id'];
}
$i++;
}

我使$accounts变量不产生字符串的方法吗?

这只是告诉您您正在做完全错误的事情:

$array = [1,2,3,4];

rsort($array);

//$array is sorted. 
然而:

rsort(array_filter($array)); 

//Array filter returned a copy of the original array so $array is neither sorted nor filtered.
您需要执行以下操作:

$accounts = '';
while ($data = $getdata->fetch(PDO::FETCH_ASSOC)) {
    $accounts .= $data['id'].',';
}
$accountsrev = explode(',',rtrim($accounts,","));
rsort($accountsrev);
$accountsrev  = implode(',',$accountsrev);//accountsrev is sorted here

这只是告诉你你在做一些完全错误的事情:

$array = [1,2,3,4];

rsort($array);

//$array is sorted. 
然而:

rsort(array_filter($array)); 

//Array filter returned a copy of the original array so $array is neither sorted nor filtered.
您需要执行以下操作:

$accounts = '';
while ($data = $getdata->fetch(PDO::FETCH_ASSOC)) {
    $accounts .= $data['id'].',';
}
$accountsrev = explode(',',rtrim($accounts,","));
rsort($accountsrev);
$accountsrev  = implode(',',$accountsrev);//accountsrev is sorted here
或者您可以使用
array\u reverse()
函数代替
rsort

echo $accountsrev = implode(',',array_reverse(explode(',',$accounts)));
然后输出将是

6,5,4,3,2,1
6,5,4,3,2,1
或者您可以使用
array\u reverse()
函数代替
rsort

echo $accountsrev = implode(',',array_reverse(explode(',',$accounts)));
然后输出将是

6,5,4,3,2,1
6,5,4,3,2,1
快速简便:

$accounts = '1,2,3,4,5,6';

echo $accountsrev = implode(',',array_reverse(explode(',',$accounts)));
快速简便:

$accounts = '1,2,3,4,5,6';

echo $accountsrev = implode(',',array_reverse(explode(',',$accounts)));


如果您的第一行与此处显示的内容非常相似,那么您应该首先修复:
$accounts=1,2,3,4,5,6不是字符串,
$accounts=“1,2,3,4,5,6”现在是了。我的错,那是个打字错误。我从数据库中调用7行,然后在while循环中构建字符串。因此,我的代码实际上并不包含该部分。如果您的第一行与此处显示的内容非常相似,那么您应该首先修复该部分:
$accounts=1,2,3,4,5,6不是字符串,
$accounts=“1,2,3,4,5,6”现在是了。我的错,那是个打字错误。我从数据库中调用7行,然后在while循环中构建字符串。因此,我的代码实际上并不包含这一部分。+1不仅提供了代码的固定版本,而且还解释了OPs代码不起作用的原因。accounts变量是一个拼写错误,实际上不在我的代码中。我使用while循环和数据库中的数据创建字符串。你能阅读编辑后的问题吗?@s1h4d0w我不明白为什么这会成为一个问题,但请检查我的更新答案nevertheless@apokryfos所以问题是我不能组合像
内爆(',',rsort(explode(',',$accounts))?我仍然无法正确理解是什么破坏了它。@s1h4d0w和所有相关函数都要求通过引用传递参数(如果您检查文档,这就是
&
的意思)。只有变量可以通过引用传递(如错误所示)<代码>分解(“,”,$accounts)
不是一个变量,它是一个函数调用
$accounts
是一个变量+1,它不仅提供了代码的固定版本,而且还解释了OPs代码不起作用的原因。accounts变量是一个输入错误,实际上不在我的代码中。我使用while循环和数据库中的数据创建字符串。你能阅读编辑后的问题吗?@s1h4d0w我不明白为什么这会成为一个问题,但请检查我的更新答案nevertheless@apokryfos所以问题是我不能组合像
内爆(',',rsort(explode(',',$accounts))?我仍然无法正确理解是什么破坏了它。@s1h4d0w和所有相关函数都要求通过引用传递参数(如果您检查文档,这就是
&
的意思)。只有变量可以通过引用传递(如错误所示)<代码>分解(“,”,$accounts)
不是一个变量,它是一个函数调用<代码>$accounts
是一个变量accounts变量是一个输入错误,实际上不在我的代码中。我使用while循环和数据库中的数据创建字符串。你能看一下编辑后的问题吗?谢谢你的帮助@apokryfos只是稍微快了一点,解释说我不能那样使用
rsort
。没问题,我仍然非常感谢你花时间回答!accounts变量是一个输入错误,实际上不在我的代码中。我使用while循环和数据库中的数据创建字符串。你能看一下编辑后的问题吗?谢谢你的帮助@apokryfos只是稍微快了一点,解释说我不能那样使用
rsort
。没问题,我仍然非常感谢你花时间回答!