我收到一个php count()错误, “
Warning: count(): Parameter must be an array or an object that implements Countable”
, 这显然是数组。该代码仍然有效, 但是我想知道如何重新编码以避免警告消息。
首先, 我有一个多维数组(print_f dump):
$icons Array
(
[0] =>
Array
(
[image] =>
12811
[label] =>
Chemical
[categories] =>
Array
(
[0] =>
209
))[1] =>
Array
(
[image] =>
12812
[label] =>
Cut
[categories] =>
Array
(
[0] =>
236
))[2] =>
Array
(
[image] =>
12813
[label] =>
Flame
[categories] =>
Array
(
[0] =>
256
[1] =>
252
))
)
我正在将Wordpress术语与图像匹配:
<
?php
$terms = wp_get_post_terms( get_the_ID(), 'product_categories', array("fields" =>
"ids"));
if($icons) {foreach($icons as $row) {
for($i=0;
$i<
count($row['categories']);
$i++) {
for($j=0;
$j<
count($terms);
$j++) {
if($row['categories'][$i]==$terms[$j]) {
array_push($icon_img_ary, $row['image']);
$icon_img_ary_unq=wg_unique_array($icon_img_ary);
}
}
}
}
}
} ?>
在对嵌套数组进行计数时, 该错误发生在第一个for()循环中。实际上, 我已经使用这个相同的代码已有几个月了, 在两个单独的文档上有两个实例。我只在其中一个文档中收到此错误。我一直在努力尝试理解为什么数组不以数组形式键入。
我已经看到一些讨论的解决方案, 它们在条件条件下使用数组变量& & count($ array)?这就像是一种全新的语法, 然后在后续的’ ; ’ 上抛出错误。或{}个字符。非常令人困惑, 我正在尝试了解。任何帮助将不胜感激, 谢谢!
#1如果使用的是PHP 7.3, 则可以使用is_countable(), 否则可以使用is_array()。
对于PHP 7.3或更高版本:
<
?php
$terms = wp_get_post_terms( get_the_ID(), 'product_categories', array("fields" =>
"ids"));
if($icons) {foreach($icons as $row) {
if ( is_countable( $row['categories'] ) ) {
for($i=0;
$i<
count($row['categories']);
$i++) {
for($j=0;
$j<
count($terms);
$j++) {
if($row['categories'][$i]==$terms[$j]) {
array_push($icon_img_ary, $row['image']);
$icon_img_ary_unq=wg_unique_array($icon_img_ary);
}
}
}
}
}
}
?>
对于低于PHP 7.3的版本:
<
?php
$terms = wp_get_post_terms( get_the_ID(), 'product_categories', array("fields" =>
"ids"));
if($icons) {foreach($icons as $row) {
if ( is_array( $row['categories'] ) ) {
for($i=0;
$i<
count($row['categories']);
$i++) {
for($j=0;
$j<
count($terms);
$j++) {
if($row['categories'][$i]==$terms[$j]) {
array_push($icon_img_ary, $row['image']);
$icon_img_ary_unq=wg_unique_array($icon_img_ary);
}
}
}
}
}
}
?>
#2【如何避免在看起来有效的数组上出现php Countable错误】如果不确定是否可以对有问题的变量使用count, 则可以使用is_countable函数。
推荐阅读
- 如何在WordPress中居中滑动条
- 阿里云 yum 源切换
- [笨叔点滴12]面试必考(如果在中断处理函数里发生了缺页中断会怎样(为什么?))
- [笨叔点滴7] 再也回不去的C语言
- [笨叔点滴14] ARMv8里异常处理哪些蛇神牛鬼
- [笨叔点滴13]哪些异常处理的事儿
- 自助重置AD域用户密码_如何更好的对AD域用户密码进行管理
- 百分点数据科学实验室(白酒零售行业商品搭售方案)
- VRRP协议(虚拟路由冗余协议)