这是返回包含4个或5个索引的数组的代码的前一部分:
$page = icl_object_id(2880, 'page', true);
$url = get_permalink($page);
$parts = explode("/", $url);
我创建了一个计算数组中索引数量的函数。这样做的想法是在总数为4的情况下,用1个索引对数组进行人工膨胀。
function partsSumcheck() {
if (count($parts) === 5) {
return $parts;
} else {
$parts = array_unshift($parts, 'filler');
return $parts;
};
}
partsSumcheck();
var_dump($parts);
但是,当数组返回4个索引时,我在$ parts上执行了var_dump,即使取消移位后,数组仍然具有4个索引。为什么?
答案 0 :(得分:1)
array_unshift返回数组中新元素的数量,而不是新数组。另外,您应该传递数组,并在数组返回后重新分配它。
function partsSumcheck($parts) {
if (count($parts) === 5) {
return $parts;
} else {
array_unshift($parts, 'filler');
return $parts;
};
}
$parts = partsSumcheck($parts);
答案 1 :(得分:-1)
您应该在函数正文的顶部添加global $parts
。