php - sizeof() 引发数组错误
问题描述
我有数组并尝试在函数中引用它,例如:
function merge_ids(&$s_prod_ids){
if (sizeof($s_prod_ids) > 1){
$l=0;
$r=sizeof($s_prod_ids)-1;
$mid = sizeof($s_prod_ids)/2;
$L=$mid-$l+1;
$R=$r-$mid;
$this->merge_ids($L);
$this->merge_ids($R);
$left_first=0;
$right_first=0;
$main=0;
while (sizeof($L) > $left_first && sizeof($R) > $right_first){
if ($L[$left_first] < $R[$right_first]){
$s_prod_ids[$main] = $L[$left_first];
$left_first++;
}else{
$s_prod_ids[$main]=$R[$right_first];
}
$main++;
}
while ($left_first < sizeof($L)){
$s_prod_ids[$main] = $L[$left_first];
$left_first++;
$main++;
}
while ($right_first < sizeof($R)){
$s_prod_ids[$main] = $R[$right_first];
$right_first++;
$main++;
}
}
}
public function index()
{
$alg = new SliderController();
$s_prod_ids = array(1,2,3,4 ...)
$alg->merge_ids($s_prod_ids)
但是sizeof
引发错误并说 sizeof 参数必须是数组。我检查了它dd()
并merge_ids
获取了数组,但sizeof
没有工作。有人可以说我在 php 中做错了什么吗?
解决方案
首先s_prod_ids
获取数组,但是,接下来当您使用递归时int
,请像这样更改您的$L
AND $R
:
$L = array_slice($s_prod_ids, 0, $mid);
$R = array_slice($s_prod_ids, $mid);
现在你正在切割你的 id
推荐阅读
- c# - 点网核心不一致
- delphi - TIdSMTP:如何发送在电子邮件正文中正确显示的特殊字符
- clojure - 使用“rest”参数递归/嵌套
- javascript - 需要帮助制作一个无需使用 .math 或 .pow 函数即可计算指数/幂的计算器。使用循环
- snowflake-cloud-data-platform - 雪花用户的默认角色不存在
- python-3.x - Keras - UnboundLocalError:分配前引用的局部变量'batch_index'
- reactiveui - 当 ObservableCollection 中的属性发生变化时调用命令
- python - 从需要 headers={'user-agent', 'cookie', x-xsrf-token'} 的主机获取 json 数据
- csv - 如何对 CSV 数据进行 curl POST?
- java - 未能定义类 org.springframework.beans.PropertyAccessException