php - 获取数组中有值的值的个数
问题描述
我有这个数组
array (size=5)
'amazon' =>
array (size=3)
'url' => string '' (length=0)
'display' => string 'Yes' (length=3)
'best_offer' => string '' (length=0)
'ebay' =>
array (size=3)
'url' => string '' (length=0)
'display' => string 'Yes' (length=3)
'best_offer' => string '' (length=0)
'moosejaw' =>
array (size=3)
'url' => string '' (length=0)
'display' => string 'Yes' (length=3)
'best_offer' => string '' (length=0)
'rei' =>
array (size=3)
'url' => string '' (length=0)
'display' => string 'Yes' (length=3)
'best_offer' => string '' (length=0)
'jenson' =>
array (size=3)
'url' => string 'https://ebay.com' (length=16)
'display' => string 'Yes' (length=3)
'best_offer' => string '' (length=0)
我需要检查“url”是否有一个字符串,所以如果有那么只计算有多少有一个 URL
所以对于这个例子,这应该只显示“1”
很感谢任何形式的帮助 :-)
顺便说一句,这就是我现在所拥有的
if( have_rows('marketplace_links') ):
while( have_rows('marketplace_links') ): the_row();
$value = get_field('marketplace_links', $post->ID);
echo count($value);
endwhile;
endif;
上面的代码显示 5 而不是 1
解决方案
is_string() : 查找变量的类型是否为字符串
您可以使用简单foreach
的is_string
和empty
$counter = 0;
foreach($a as $v){
is_string($v['url']) && !empty($v['url']) ? ($counter++) : '';
}
推荐阅读
- java - 我可以使用 Inno Setup 为 Java 应用程序创建独立的 .exe 安装程序吗?
- java - 当我想将 Log4j 添加到依赖项时,Maven-plugin-plugin:descriptor 目标失败
- c - 如何将 32 位整数的位模式存储在 C 中 0 和 1 的 32 长度字符串中
- apache-spark - spark SQL中的递归cte
- javascript - 使用 Lodash memoize 的“Javascript 堆内存不足”
- java - Java 类 Vectors 运行速度太慢
- c - fork() 遇到 fopen() 时的混乱
- bash - 从 W10 和 Bash 在“Visual Studio Code”中运行 Javascript
- ruby - 安装乘客时出错:rake 需要 Ruby 版本 >= 2.0.0。: 厨师食谱错误
- macos - 如何在全新的 macOS Mojave App Store 中显示开发者的所有应用程序?